Подтвердить что ты не робот

Добавьте дополнительный интервал между подмножеством графиков

Я пытаюсь вывести 6 фигур в одно изображение в макете 3x2. Я хотел бы разместить дополнительное пространство между верхним и нижним двумя строками. Возможно ли использование R? Я просмотрел документацию по параметру par и plot и не могу найти подходящий вариант.

Вот пример кода:

a = rnorm(100,100,10)
b = rnorm(100,100,10)

par(mfrow=c(3,2), oma=c(1,1,1,1), mar=c(2,2,2,2))
hist(a)
hist(b)
plot(a,b)
plot(a,b)
plot(a,b)
plot(a,b)

Вот что выдает этот код:


alt text


Вот то, что я хотел бы его выводить (я изменил это изображение во внешнем редакторе). Обратите внимание на дополнительное пространство между верхней строкой и нижними строками.


alt text


4b9b3361

Ответ 1

Функция layout() - ваш друг. Вы можете, например, определить матрицу сюжетов

1 2
3 4
5 6
7 8

а затем введите пустые участки для третьего и четвертого. Или просто придерживайтесь шести и звоните par, чтобы добавить дополнительный интервал внизу.

Ответ 2

Я могу представить три способа:

1) Используйте графический параметр mar для установки поля графика

Вы можете получить текущие поля с помощью

currmar <- par()$mar

Вы можете установить новые поля с помощью

par("mar"=c(5, 4, 4, 2))

для чисел, являющихся нижним, левым, верхним и правым полями (см. ?par)

Вы можете сделать несколько вызовов par для каждого графика, поэтому вы можете изменить нижнее поле только для верхних графиков.

2) Используйте макет для создания неравномерной сетки (см. ?layout для примеров)

3) Сохраните график в .svg или .pdf, а затем используйте Inkscape (или любое другое программное обеспечение, которое вам нравится) для перемещения графиков.

Ответ 3

Думаю, что с mar я бы это сделал. Однако, как вам кажется, вы хотите, чтобы все сюжеты были одинаковыми. Таким образом, вам нужно иметь ту же сумму, что и марк на каждом сюжете сверху и снизу.
В вашем случае можно использовать следующие номера:
1. строка: par(mar=c(7,4,4,2))
2. строка: par(mar=c(5,4,6,2))
3. строка: par(mar=c(7,4,4,2))

Таким образом, все участки занимают одну и ту же высоту. Модифицируйте первое и третье число таким образом, чтобы они были одинаковыми для каждого сюжета, чтобы выполнить это. Однако, предостережение: в нижней строке есть несколько лишних пробелов.