我有三个情节,我会安排在一个窗口中。我可以使用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”中水平居中。我怎样才能做到这一点?
答案 0 :(得分:17)
不完全是你要求的,因为第三个数字不是水平居中,而是延伸到整个设备宽度,但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)
给出以下结果:
您还可以使用具有以下布局的“垂直”拉伸:
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)
给出了:
另一种解决方法是将您的身材保存为PDF格式,然后使用像inscape这样的工具进行编辑,以便将您的第三个数字“居中”。
答案 1 :(得分:14)
您可能想要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)
。