我有n个ggplot对象,这些对象将始终具有正确的数字以构成矩阵的下三角形(无对角线)。我如何按此顺序排列它们:

1
2 3
4 5 6
7 8 9 10

形成一个网格(这里n = 10)?

这是制作n个图的数据,以及我希望n = 6时的外观。
n <- sample(1:4, 1)
N <- sum(n:1)

library(ggplot2)
theplot <- ggplot(mtcars, aes(mpg, hp)) + geom_point()
plots <- lapply(1:N, function(i) theplot)
plots <- mapply(function(x, y) x + ggtitle(y), plots,
    paste("PLOT", seq_along(plots)), SIMPLIFY=FALSE)

我怀疑gridExtra在这里可能有用,但是有空白 Pane 。我愿意接受或增加包装创意。

最佳答案

您可以将矩阵布局传递给grid.arrange,

library(ggplot2)
library(gridExtra)
plots <- lapply(1:10, function(id) ggplot() + ggtitle(id))

m <- matrix(NA, 4, 4)
m[lower.tri(m, diag = T)] <- 1:10
grid.arrange(grobs = plots, layout_matrix = m)

r - 将n个ggplots排列成较低的三角形矩阵形状-LMLPHP

关于r - 将n个ggplots排列成较低的三角形矩阵形状,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22996454/

10-12 17:23