我有三个情节,我会安排在一个窗口.我可以使用par(mfrow = c(2, 2))以下方法在常规的2*2网格上安排类似大小的图:
par(mfrow = c(2, 2))
plot(1:10, main = "plot1")
plot(10:1, main = "plot2")
plot(rnorm(10), main = "plot3")
Run Code Online (Sandbox Code Playgroud)
但是,我想在顶行上将"plot1"和"plot2"放在彼此旁边,并在它们下面"plot3",水平居中.我怎样才能做到这一点?
jub*_*uba 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)
Run Code Online (Sandbox Code Playgroud)
给出以下结果:

您还可以使用具有以下布局的"垂直"拉伸:
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)
Run Code Online (Sandbox Code Playgroud)
这使 :

另一种解决方法是将您的图形保存为PDF格式,并使用像inscape这样的工具对其进行编辑,以使您的第三个图形"居中".
mds*_*ner 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")
Run Code Online (Sandbox Code Playgroud)
使用layout.show查看每个面板.
打印矩阵以查看其工作原理:
m
[,1] [,2] [,3] [,4]
[1,] 1 1 2 2
[2,] 0 3 3 0
Run Code Online (Sandbox Code Playgroud)
第一个面板有1个,第二个面板有2个,"非面板"有0个.
见help(layout).