Логическая группировка произвольного числа участков в R
Я имею n
графики, которые я хочу отобразить в сетке на одном изображении в R. Использование par
Я могу заранее указать количество строк и столбцов, чтобы разделить сюжет. Например, для n = 4
, имеет смысл организовать 4 участка в квадратную сетку 2х2.
par(mfrow=c(2,2))
plot(p1)
plot(p2)
plot(p3)
plot(p4)
Я хотел бы, чтобы это работало для произвольного n
, тем не мение. Так, например, скажем, я хочу построить 12 графиков рядом. Наиболее практично, чтобы результирующая сетка графиков была как можно более квадратной, поэтому я бы хотел сетку 3х4 par(mfrow=c(3, 4))
, а не 12x1 par(mfrow=c(12, 1))
, Или, если я хочу построить 11 участков, 12-ая сетка будет пустой.
Есть ли быстрый способ сделать это в R? В противном случае я полагаю, что мне нужно сделать некоторую алгебру - это проблема оптимизации, минимизирующая периметр сетки при фиксированной площади n
,
2 ответа
За nplots
графики, как насчет:
rows = floor(sqrt(nplots))
columns = ceiling(sqrt(nplots))
par(mfrow=c(rows,columns))