有没有办法在批处理模式下使用ggsave?当我说批处理模式时,我的意思是我首先通过ggplot绘制所有绘图,然后将每个绘图保存在特定文件夹中。 Here是一个名为
的论据plot=last_plot()
但没有替代方案。还有其他选择,比如plot = all_plot()?
答案 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]])
) )