如何在R中使用layout()函数?

13

我刚刚拿了一个例子,使用layout函数生成了四个图表组合。但是,我无法弄清楚layout()内部的矩阵如何连接这些图表的布局。

layout(matrix(c(1, 1, 1,
                2, 3, 4,
                2, 3, 4), nr=3, byrow=T))
hist(rnorm(25), col="VioletRed")
hist(rnorm(25), col="VioletRed")
hist(rnorm(25), col="VioletRed") 
hist(rnorm(25), col="VioletRed")

2
根据?layoutlayout将设备分成与矩阵mat中行列数相同的行和列,并在各自的参数中指定列宽和行高。 - akrun
1
这是一个3*3的矩阵,并且有一个带有四个图形的图。那么这些数字如何对应这些图形呢? - Bratt Swan
我所知道的最好的关于其功能的解释在YaRrr!Pirate's Guide to R中。一旦基本原理被解释清楚,文档就突然变得非常清晰易懂了。 - mirh
1个回答

35

对于你的例子,图形设备被分成一个 3 x 3 的单元格网格,每列/行的宽度和高度相等(因为当不提供 widthsheights 参数时,默认行为是如此)。

调用 layout 后,第一个后续绘图将填充矩阵值为 1 的单元格(即顶部三个单元格)。第二个图将填充矩阵值为 2 的单元格(左下角和中间左侧单元格),以此类推。

要获取即将出现的布局预览,可以使用 layout.show

layout(matrix(c(1, 1, 1,
                2, 3, 4,
                2, 3, 4), nrow=3, byrow=TRUE))
layout.show(n=4)

输入图像描述


你的回答非常完美!谢谢。 - Bratt Swan
1
完美。以这种方式格式化矩阵使我们能够轻松理解。 - igorkf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接