R:将文件列表中的多个绘图保存到单个文件中(png 或 pdf 或其他格式)

kur*_*dtc 5 plot r

我有超过 10 个文件(最后有数百个......)。我在 R 中生成的 png 格式保存到一个文件夹中。

我的问题:如何将这些文件保存到多图(例如,一页上的 4 个数字按 2 行和 2 列排列)?

我知道这可以通过使用合并到绘图循环中,par(mfrow=c(2,2))但是我怎么能在生成后调用文件夹中的文件呢?

ags*_*udy 5

这是聚合许多png文件的快速方法:

  1. 使用读取您的 png readPNG
  2. 将它们转换为 raster ,并使用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()
Run Code Online (Sandbox Code Playgroud)

编辑:加载 png ,排列它们并将它们合并在同一个 pdf 中:

首先,您应该使用以下命令将 png 文件存储在 grobs 列表中rasterGrob

plots <- lapply(ll <- list.files(patt='.*[.]png'),function(x){
  img <- as.raster(readPNG(x))
  rasterGrob(img, interpolate = FALSE)
})
Run Code Online (Sandbox Code Playgroud)

然后使用出色的便捷功能保存它们marrangeGrob

library(ggplot2)
library(gridExtra)
ggsave("multipage.pdf", marrangeGrob(grobs=plots, nrow=2, ncol=2))
Run Code Online (Sandbox Code Playgroud)