我有超过10个文件(最后有几百个......)。我用R生成的png格式保存到文件夹中。
我的问题:我怎样才能将这些文件保存到多个时段中(例如,一页上的4个数字排列成2行2列)?
我知道可以使用par(mfrow=c(2,2))
将其合并到一个绘图循环中,但是如何在生成它们之后调用文件夹中的文件之外呢?
答案 0 :(得分:4)
这是一种聚合许多png文件的快速方法:
readPNG
grid.raster
绘制它们:非常高效。这样的事情:
library(png)
library(grid)
pdf('somefile1.pdf')
lapply(ll <- list.files(patt='.*[.]png'),function(x){
img <- as.raster(readPNG(x))
grid.newpage()
grid.raster(img, interpolate = FALSE)
})
dev.off()
首先,您应该使用rasterGrob
plots <- lapply(ll <- list.files(patt='.*[.]png'),function(x){
img <- as.raster(readPNG(x))
rasterGrob(img, interpolate = FALSE)
})
然后使用优秀的便捷功能marrangeGrob
保存它们:
library(ggplot2)
library(gridExtra)
ggsave("multipage.pdf", marrangeGrob(grobs=plots, nrow=2, ncol=2))