【问题标题】:How to save plots inside a folder?如何将绘图保存在文件夹中?
【发布时间】:2015-04-19 23:48:46
【问题描述】:

这是一个非常基本的问题,但我无法找到答案。

我要做的就是将所有图形存储到一个文件夹中,该文件夹是存储 R 脚本的一个目录。而且我不想使用完整目录,而是使用相对目录,因为我在多台计算机上工作。

所以,我有这个结构:

/code
  /Rscript1
  /inputdata
  /Rscript2 
      /figs
          fig1
          fig2

我要做的就是告诉 ggplot 将所有数字存储在 "figs" 文件夹中,而不是与 Rscript1 和 Rscript2 相同的文件夹(即 "code" 文件夹) .

scatter<-function(df,x,y){
  ggplot(df, aes_string(x=x, y=y)) +
    geom_point()+
    theme_bw()+
    theme(panel.grid.major = element_line(colour = "#808080"))
}

scatter(df=dassmp,x='Oss',y='sa')+
  ggsave('fig1.png',width=6, height=4,dpi=300)

【问题讨论】:

  • 我在世界各地寻找幸福,在我的背后找到了它。答案是 figs/fig1.png
  • 如果你只想要相对路径,你会想要ggsave("figs/fig1.png", ...)(没有前导倾斜)。
  • 有时setwd("C:/.../directory/to/location/")getwd() 也很有用。 R 默认为工作目录,并不一定关心脚本的位置。 Wd 也可以在 RStudio 中默认右下角面板的 Files->More 下进行更改。
  • 有一个有趣的包叫做here [cran.r-project.org/web/packages/here/index.html] ...对于您正在处理的问题非常有用,并且易于使用..

标签: r


【解决方案1】:

既然您提到了不同的计算机,为了安全起见,如果您的代码用于不同的系统,例如Windows/Mac/Linux),你应该使用

ggsave(path = "figs", filename = "fig1.png")

ggsave(filename = file.path("figs","fig1.png")

避免硬编码错误的斜线。

更好的是,如果您的项目组织方式不同并且您的 R 脚本放置在其他位置,或者您正在使用 RStudio 项目或 Git 存储库,您可以确保您的相对文件路径指向一致的位置,方法是使用包here:

library(here)
ggsave(filename = here("figs","fig1.png")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 2014-03-22
    • 2012-06-18
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多