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

时间:2016-03-17 00:03:38

标签: r ggplot2 gridextra

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

函数ggsave允许我编写一个图表页面,甚至是那些使用gridExtra布局m x n构建的图表。

使用arrangeGrob,只要每个页面具有相同的ggsave布局,就可以m x n多个页面到单个pdf。

我想知道如何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)

1 个答案:

答案 0 :(得分: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)

enter image description here