假设在一个循环中,我得到了一组特定的图,我将其保存在一个图列表中,就像我的可重复示例一样.
plot_list = list()
for (i in 1:5){
dummy1 = ggplot(iris, aes(x = Petal.Length)) +
geom_histogram()
dummy2 = ggplot(iris, aes(x = Petal.Length, color=Species)) +
geom_boxplot()
dummy3 = ggplot(iris, aes(x = Petal.Length, y=Petal.Width, color=Species)) +
geom_point()
plot_list[[length(plot_list)+1]] = list(dummy1,dummy2,dummy3)
}
在迭代之后,一旦我准备好了绘图列表,我想创建一个单独的PDF页面,每个页面都传递一个特定的布局矩阵.在不同的帖子中,我try 了这段代码:
lay = rbind (c(1,1,2,2),
c(1,1,3,3),
c(1,1,3,3))
grDevices::cairo_pdf("plots.pdf", onefile = TRUE)
for (i in seq(length(plot_list))) {
do.call('marrangeGrob',list(plot_list[[i]], layout_matrix=lay))
}
dev.off()
遗憾的是,它只返回单页的空白pdf.如有任何帮助,我们不胜感激.
更新:非常重要的是,我的示例是一个可重现的示例,但其 struct 不能修改.它来自for的原因是因为在我的原始代码中来自foreach
,所以答案需要与我提出的 struct 兼容.