R中任意数量的图的逻辑分组
Logical grouping of arbitrary number of plots in R
我有 n
个图,我想在 R 中的单个图像的网格中显示。使用 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
.
的情况下最小化网格的周长
grDevices::n2mfrow()
可以为您做到
对于nplots
个地块,如何:
rows = floor(sqrt(nplots))
columns = ceiling(sqrt(nplots))
par(mfrow=c(rows,columns))
我有 n
个图,我想在 R 中的单个图像的网格中显示。使用 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
.
grDevices::n2mfrow()
可以为您做到
对于nplots
个地块,如何:
rows = floor(sqrt(nplots))
columns = ceiling(sqrt(nplots))
par(mfrow=c(rows,columns))