gridExtra::marrange():按行排序图

ijxebb2r  于 2023-11-14  发布在  其他
关注(0)|答案(1)|浏览(81)

给出:

library(ggplot2)
l <- list(1:6)
for(i in 1:6){
  l[[i]] <- ggplot(data=data.frame(x=1:10, y=1:10)) +
    geom_point(aes(x=x, y=y)) +
    ggtitle(i)
}
ml <- marrangeGrob(l, nrow=3, ncol=2)
ml

字符串
我得到按列排序的图,即:
1 4
2 5
3 6
但我希望它们按行排列
1 2
3 4
5 6
我试过使用byrow=TRUE,但没有效果。我怎么能按行排列图呢?

pbwdgjma

pbwdgjma1#

正如在注解中已经建议的那样,您可以通过layout_matrix=参数指定顺序,即使用matrix()byrow = TRUE参数。
注意:我切换到lapply来创建list图表。

library(ggplot2)
library(gridExtra)

l <- lapply(1:6, \(i) {
  ggplot(data = data.frame(x = 1:10, y = 1:10)) +
    geom_point(aes(x = x, y = y)) +
    ggtitle(i)
})

ml <- marrangeGrob(l,
  layout_matrix = matrix(
    seq_len(3 * 2),
    nrow = 3, ncol = 2,
    byrow = TRUE
  )
)

ml

字符串


的数据

相关问题