繁体   English   中英

当列的行数不同时使用 R 的布局

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM