2

我有一个使用创建的对象列表patchwork。我想将此列表的每个元素保存为单个 PDF 中的单独页面。

如果对普通ggplot2对象执行此操作,我将按照此处gridExtra::marrangeGrob()给出的解决方案使用 组合图。我喜欢这种方法,因为它很整洁,而且输出包含页码。

但是我无法使用这种方法patchwork。它不是在每一页上打印整个情节“复合”,而是只显示一个情节元素。MWE 在下面给出。

library(ggplot2)
library(patchwork)
library(gridExtra)

# dummy plots
p1 <- ggplot(mtcars, aes(mpg, disp)) + geom_point()
p2 <- ggplot(mtcars, aes(mpg, disp)) + geom_line()

# create plot 'composites' using `patchwork` and combine into list
# elements duplicated for simplicity
plot_list <- list(
  wrap_plots(p1, p2),
  wrap_plots(p1, p2)
)

# attempt to export with separate page for each list element
# expect to produce a PDF with two pages, both of which show p1 adjacent to p2
plot_list %>%
  marrangeGrob(nrow = 1, ncol = 1) %>% # no combination of nrow and ncol seems to work
  ggsave(filename = "plots.pdf")

我在这里做错了什么?结合一个愚蠢的想法patchworkgridExtra如果是这样,更好的选择是什么?

4

0 回答 0