将当前文件夹中的png文件合并到r中的单个png文件中

时间:2015-07-30 19:22:44

标签: r

kurdtc's question的解决方案不再有效:

library(grid)
library(png)

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

library(ggplot2)
library(gridExtra)

ggsave("Plots_Combined.png",width=8.5, height=11, 
        do.call(marrangeGrob, c(plots, list(nrow=2, ncol=1,top=NULL))))

marrangeGrob函数给出以下错误:错误:nrow * ncol&gt; = n不为TRUE,其中2个png文件位于当前文件夹中(应该可以)。是否有任何影响此功能的marrangeGrob函数更新?

1 个答案:

答案 0 :(得分:1)

marrangeGrob的参数列表最近发生了变化;不再需要do.call,只需使用grobs参数,

ggsave("Plots_Combined.pdf",width=8.5, height=11, 
       marrangeGrob(grobs = plots, nrow=2, ncol=1,top=NULL))

对于png,你不能将多个页面输出到单个文件,但这个技巧可能有所帮助,

ggsave("Plots_Combined%03d.png",width=8.5, height=11, 
       marrangeGrob(grobs = plots, nrow=2, ncol=1,top=NULL))