鉴于:
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,但没有效果。我怎样才能按行排列图?
正如评论中已经建议的,您可以通过
layout_matrix=
参数指定顺序,即使用 byrow = TRUE
的 matrix()
参数。
注意:我切换到
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