按名称保存绘图列表()

发布于 2024-11-19 22:12:52 字数 546 浏览 1 评论 0原文

假设我有一个我创建的绘图列表。

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

Let's say I have a list of plots that I've created.

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()

Now, I would like to save all of these, labelling each with their respective names(plots) element.

lapply(plots, 
       function(x) { 
         ggsave(filename=paste(...,".jpeg",sep=""), plot=x)
         dev.off()
         }
       )

What would I replace "..." with such that in my working directory the plots were saved as:

a.jpeg
b.jpeg
c.jpeg

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

赠我空喜 2024-11-26 22:12:52

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

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

probably you need to pass the names of list:

lapply(names(plots), 
  function(x)ggsave(filename=paste(x,".jpeg",sep=""), plot=plots[[x]]))
洛阳烟雨空心柳 2024-11-26 22:12:52

@kohske 的回答非常精彩!以下是 purrr 0.3.4 版本,适合那些可能喜欢在 tidyverse 中工作的人。此外,还会创建一个临时目录来保存绘图,因为 ggsave 默认保存到工作目录。

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

@kohske's answer is sensational! Below is the purrr 0.3.4 version for those who may prefer working within tidyverse. Also, a temporary directory is created to hold the plots since ggsave defaults to saving to the working directory.

map(names(plots), function(.x) {
    ggsave(
        path = "tmp/",
        filename = paste0(.x, ".png"),
        plot = plots[[.x]]
        )
    })
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文