ggplot绘图列表到一个pdf具有不同的页面布局

JCW*_*ong 2 r ggplot2 gridextra

我想制作一个包含许多ggplots页面的pdf.使用gridExtra,我还可以构建一个带有m x n布局的图表页面(图表m行,图表n列).

该功能ggsave让我写地块的页面,即使是带有内置那些gridExtra具有m x n布局.

只要每个页面具有相同的布局,使用arrangeGrob它甚至可以将ggsave许多页面转换为单个pdf m x n.

我想知道如何ggsave列出具有不同页面布局的图表?例如,我有一个列表,l长度为3表示3页.

l[[1]]是一个2 x 2布局的页面,有4个图

l[[2]]2 x 1有2个地块

l[[3]] 只是 1 x 1

我怎么能破解ggsave以便我可以将列表l写入1个pdf文件,其中3个页面具有不同的布局?这些图应以横向显示,因此通常命令将具有该表单

ggsave("multipage.pdf", do.call(arrangeGrob, myplots[[i]]), width=11, height=8.5)
Run Code Online (Sandbox Code Playgroud)

bap*_*ste 5

你可以使用相同的类技巧marrangeGrob,

library(ggplot2)
library(gridExtra)
pl <- lapply(1:7, function(i) ggplot() + ggtitle(i))

ppl <- list(p1 = arrangeGrob(grobs=pl[1:4]),
            p2 = arrangeGrob(grobs=pl[5:6]),
            p3 = arrangeGrob(grobs=pl[7]))

class(ppl) <- c("arrangelist", class(pl))

ggsave("multipage.pdf", ppl)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述