【发布时间】:2019-08-08 13:30:14
【问题描述】:
我希望在 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')
有没有办法做到这一点,使左侧的三个地块大小和间距相等,并使用所有可用空间?
(edit:) MichaelChirico 指出我可以使用 8×3 行,这在本示例中是可行的,但是当存在具有不同行数的多列时会变得很麻烦;我相信布局最多只能支持 200 行。
【问题讨论】:
-
您能否详细说明“所有可用空间”?大多数情况下,你会希望你的布局矩阵有 24 行。 LHS地块每个占用8个; RHS 地块各取 3 个。然后乱用
oma和mar设置来处理空白 -
参见
?split.screen- 我觉得它比layout更麻烦,但它可以满足您的要求。
标签: r