[英]Using R's layout when columns have a different number of rows
我希望在 R 中创建一个包含 11 个面板的图:三个在左侧列中,八个在右侧列中。 我希望左侧的三个图高度相同,右侧的八个图高度相同。
我可以通过使用layout
和修改边距来获得某种方法:但是因为不可能指定负边距,所以这不允许我使用左列中的全部空间。 此外,如果稍后将绘图发送到具有不同页面大小的 PDF 设备,边距可能看起来不同。
layout(matrix(c(1, 1, 0, 2, 2, 0, 3, 3, 3 + (1:8)), ncol=2),
widths=c(0.33, 0.67))
par(mar=c(0, 2, 2, 2))
plot(c(1, 1))
par(mar=c(0, 2, 0, 2))
plot(c(1, 1))
par(mar=c(2, 2, 0, 2))
plot(c(1, 1))
par(mar=rep(2, 4))
for (i in 1:8) plot(c(2, 2), col='red')
有没有办法做到这一点,使三个左侧图的大小和间距相等,并使用所有可用空间?
(编辑:)MichaelChirico 指出我可以使用 8×3 行,这对于这个例子是可行的,但是当有多个具有不同行数的列时会变得很麻烦; 我相信布局最多只能支持 200 行。
这是使用您的代码和split.screen
。 显然,您需要调整边距。
dev.off()
split.screen(figs = c(1, 2))
split.screen(figs = c(3, 1), screen = 1)
screen(n = 3)
par(mar=c(0, 2, 2, 2))
plot(c(1, 1))
screen(n = 4)
par(mar=c(0, 2, 2, 2))
plot(c(1, 1))
screen(n = 5)
par(mar=c(0, 2, 2, 2))
plot(c(1, 1))
split.screen(figs = c(8, 1), screen = 2)
for (i in 6:13) {
screen(n = i)
plot(c(2, 2), col='red')
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.