批处理模式下的ggsave,以便自动保存完成的所有绘图

时间:2014-01-05 00:41:08

标签: r plot ggplot2 batch-processing

有没有办法在批处理模式下使用ggsave?当我说批处理模式时,我的意思是我首先通过ggplot绘制所有绘图,然后将每个绘图保存在特定文件夹中。 Here是一个名为

的论据
plot=last_plot()

但没有替代方案。还有其他选择,比如plot = all_plot()?

1 个答案:

答案 0 :(得分:5)

正如@baptiste建议的那样,你可以将你的情节保存在列表中。下面的代码都绘制了绘图(使用print,这是必要的,否则对列表的赋值会阻止显示绘图),并将它们存储在列表中,然后lapply覆盖列表将它们全部保存为文件:

library(ggplot2)
plots <- list()
print(plots[[1]] <- ggplot() + geom_point(aes(x=runif(10), y=runif(10))))
print(plots[[2]] <- ggplot() + geom_point(aes(x=runif(10), y=runif(10))))
print(plots[[3]] <- ggplot() + geom_point(aes(x=runif(10), y=runif(10))))
invisible(
  lapply(
    seq_along(plots), 
    function(x) ggsave(filename=paste0("myplot", x, ".png"), plot=plots[[x]])
) )