Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用R';列具有不同行数时的布局_R - Fatal编程技术网

使用R';列具有不同行数时的布局

使用R';列具有不同行数时的布局,r,R,我希望在R中创建一个包含11个面板的绘图:三个面板位于左侧列,八个面板位于右侧列。我希望左侧的三个图的高度相同,右侧的八个图的高度相同 我可以通过使用布局和修改边距来获得一些方法:但是由于无法指定负边距,这不允许我使用左列中的全部空间。此外,如果稍后将绘图发送到具有不同页面大小的PDF设备,则页边距可能会有所不同 布局(矩阵(c(1,1,0,2,2,0,3,3,3+(1:8)),ncol=2), 宽度=c(0.33,0.67)) par(mar=c(0,2,2,2)) 地块(c(1,1)) pa

我希望在R中创建一个包含11个面板的绘图:三个面板位于左侧列,八个面板位于右侧列。我希望左侧的三个图的高度相同,右侧的八个图的高度相同

我可以通过使用
布局
和修改边距来获得一些方法:但是由于无法指定负边距,这不允许我使用左列中的全部空间。此外,如果稍后将绘图发送到具有不同页面大小的PDF设备,则页边距可能会有所不同

布局(矩阵(c(1,1,0,2,2,0,3,3,3+(1:8)),ncol=2), 宽度=c(0.33,0.67)) par(mar=c(0,2,2,2)) 地块(c(1,1)) par(mar=c(0,2,0,2)) 地块(c(1,1)) par(mar=c(2,2,0,2)) 地块(c(1,1)) par(mar=代表(2,4)) 对于(1:8中的i)图(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')
}

您能详细说明一下“所有可用空间”吗?通常,您希望布局矩阵有24行。LHS图各取8个;RHS图每幅取3。然后乱动
oma
mar
设置来处理空白。请参见
?分割。屏幕
-我发现它比
布局
更麻烦,但它可以做你要求的事情,没有问题。