R中任意数量的图的逻辑分组

时间:2015-06-09 10:44:58

标签: r plot par

我想要在R中的单个图像中的网格中显示n个图。使用par我可以预先指定用于划分图的行数和列数。例如,对于n = 4,在方形2x2网格中组织4个图是最有意义的。

par(mfrow=c(2,2))
plot(p1)
plot(p2)
plot(p3)
plot(p4)

我希望这样能为任意n工作。所以,例如,让我们说我想并排绘制12个情节。最实际的是,得到的绘图网格尽可能是方形的:所以,我喜欢3x4网格par(mfrow=c(3, 4)),而不是12x1 par(mfrow=c(12, 1))。或者,如果我想绘制11个图,那么将第12个网格留空将是正常的。

在R中有快速的方法吗?否则我想我必须做一些代数 - 这是一个优化问题,在给定固定区域n的情况下最小化网格的周长。

2 个答案:

答案 0 :(得分:2)

grDevices::n2mfrow()可以为您做到

答案 1 :(得分:0)

对于nplots图,如何:

rows = floor(sqrt(nplots)) columns = ceiling(sqrt(nplots)) par(mfrow=c(rows,columns))