我有几个ggplots作为我的ls上的对象.我想将它们保存为单独的文件(虽然我也有兴趣知道如何将它们全部保存在1个大文件中).我读过这个:问题和问题,但我似乎无法适应代码.我也尝试将它们全部放在一个大文件中,如此处所示,但确实得到了这个错误:Error in do.call("grid.arrange", plots2[[i]]) : second argument must be a list
.在一个列表中获取所有ggplots时,我遗漏了一些东西.
这是我到目前为止所尝试的:
> ls() #List of objects on my ls. All the p* are my ggplots that I want to save. [1] "all" "dat" "dat2" "dat3" "data" "dlook" "dlook2" "dlook3" "i" "look2" "mdfx" [12] "objects" "order" "p" "p1" "p10" "p11" "p12" "p13" "p14" "p15" "p16" [23] "p17" "p18" "p19" "p2" "p3" "p4" "p5" "p6" "p7" "p8" "p9" > objects<-ls() > plot<-objects[14:30] > plots [1] "p1" "p10" "p11" "p12" "p13" "p14" "p15" "p16" "p17" "p18" "p19" "p2" "p3" "p4" "p5" "p6" "p7" "p8" "p9" > class(plots) [1] "character" plots2<-as.list(plots)#Transform into a list. library(gridExtra) #Code suggested to create one pdf file. pdf("test.pdf", onefile = TRUE) for (i in seq(length(plots2))) { do.call("grid.arrange", plots2[[i]]) } dev.off()
baptiste.. 49
最好把你的情节列在清单中
l = mget(plots)
然后你可以简单地逐页打印,
pdf("all.pdf") invisible(lapply(l, print)) dev.off()
或者每个文件保存一个图,
invisible(mapply(ggsave, file=paste0("plot-", names(l), ".pdf"), plot=l))
或者将它们整理在一页中,
ggsave("arrange.pdf", arrangeGrob(grobs = l))
或者将它们排列成多页2x2,
ggsave("arrange2x2.pdf", marrangeGrob(grobs = l, nrow=2, ncol=2))
等等
(另)