Упорядочить графики в макете, который не может быть достигнут с помощью 'par (mfrow =') - PullRequest
8 голосов
/ 09 марта 2011

У меня есть три графика, которые я хотел бы расположить в одном окне.Я могу расположить графики одинакового размера на обычной сетке 2 * 2, используя par(mfrow = c(2, 2)):

par(mfrow = c(2, 2))
plot(1:10, main = "plot1")
plot(10:1, main = "plot2")
plot(rnorm(10), main = "plot3")

Однако я хочу расположить "plot1" и "plot2" рядом друг с другом в верхней строке«plot3» под ними, по центру горизонтально.Как мне этого добиться?

Ответы [ 2 ]

17 голосов
/ 09 марта 2011

Не совсем то, что вы просите, так как третья фигура не центрирована по горизонтали, а растянута до полной ширины устройства, но функция layout обеспечивает гораздо более гибкую конфигурацию.

Например,следующее определение макета:

R> layout(matrix(c(1,2,3,3), 2, 2, byrow = TRUE))
R> plot(rnorm(100),col=1)
R> plot(rnorm(100),col=2)
R> plot(rnorm(100),col=3)

Дает следующий результат:

layout with horizontal third figure

Вы также можете использовать «вертикальное» растяжение со следующим макетом:

R> layout(matrix(c(1,3,2,3), 2, 2, byrow = TRUE))
R> plot(rnorm(100),col=1)
R> plot(rnorm(100),col=2)
R> plot(rnorm(100),col=3)

Что дает:

layout with a vetrtical third figure

Другой обходной путь - сохранить вашу фигуру в формате PDF и отредактировать ее с помощью инструмента, подобного inscape, для «центрирования» вашей третьей фигуры.

14 голосов
/ 09 марта 2011

Вы, вероятно, хотите layout, вы можете настроить довольно сложные сетки, создав матрицу.

m <- matrix(c(1, 0, 1,  3, 2, 3, 2, 0), nrow = 2, ncol = 4)
##set up the plot
layout(m)
## now put out the 3 plots to each layout "panel"
plot(1:10, main = "plot1")
plot(10:1, main = "plot2")
plot(rnorm(10), main = "plot3")

Используйте layout.show, чтобы увидеть каждую панель.

Распечатайте матрицу, чтобы увидеть, как это работает:

 m
      [,1] [,2] [,3] [,4]
 [1,]    1    1    2    2
 [2,]    0    3    3    0

Есть 1 с для первой панели, 2 с для второй и т. Д. 0 с "без панели".

См. help(layout).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...