假设我有一个我创建的情节列表。
library(ggplot2)
plots <- list()
plots$a <- ggplot(cars, aes(speed, dist)) + geom_point()
plots$b <- ggplot(cars, aes(speed)) + geom_histogram()
plots$c <- ggplot(cars, aes(dist)) + geom_histogram()
现在,我想保存所有这些,用各自的名称(图表)元素标记每个。
lapply(plots,
function(x) {
ggsave(filename=paste(...,".jpeg",sep=""), plot=x)
dev.off()
}
)
我将用什么替换“...”,以便在我的工作目录中将图保存为:
a.jpeg
b.jpeg
c.jpeg
答案 0 :(得分:17)
可能你需要传递list的名字:
lapply(names(plots),
function(x)ggsave(filename=paste(x,".jpeg",sep=""), plot=plots[[x]]))
答案 1 :(得分:0)
@kohske的答案令人震惊!以下是purrr 0.3.4
版本,适合那些可能更喜欢在tidyverse
中工作的人。此外,由于ggsave
默认保存到工作目录,因此会创建一个临时目录来保存绘图。
map(names(plots), function(.x) {
ggsave(
path = "tmp/",
filename = paste0(.x, ".png"),
plot = plots[[.x]]
)
})