【问题标题】:Saving a list of plots by their names()按名称保存地块列表()
【发布时间】:2020-11-25 05:00:45
【问题描述】:

假设我有一个我创建的地块列表。

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

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    可能你需要传递列表的名称:

    lapply(names(plots), 
      function(x)ggsave(filename=paste(x,".jpeg",sep=""), plot=plots[[x]]))
    

    【讨论】:

    • +1 并接受纯粹的简单性。对我来说,这是一个令人头疼的时刻。谢谢科什克!
    【解决方案2】:

    @kohske的回答很轰动!下面是purrr 0.3.4 版本,供那些可能更喜欢在tidyverse 内工作的人使用。此外,由于ggsave 默认保存到工作目录,因此会创建一个临时目录来保存绘图。

    map(names(plots), function(.x) {
        ggsave(
            path = "tmp/",
            filename = paste0(.x, ".png"),
            plot = plots[[.x]]
            )
        })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多