【问题标题】:R error saving ggplot pdfR错误保存ggplot pdf
【发布时间】:2015-10-02 10:28:28
【问题描述】:

当我尝试使用此代码将使用 ggplot 制作的绘图保存为 pdf 时:

library(ggplot2)

file = "/data/mda/20150630-1Mb-full_comparison-low_depth_hTERT/result/comparison_figure/SD_rank_custom.csv"
figure_file = "/data/mda/20150604-1Mb-full_comparison-low_depth_hTERT/result/comparison_figure/SD_rank_custom.pdf"

sd_data <- as.data.frame(read.csv(file, header=TRUE))

# generate box plot
ggplot(
    data=sd_data,
    aes(
        x=Experiment, 
        y=SD
    )
)+  
theme_bw() + #use bw theme
geom_boxplot(outlier.shape = NA) + #hide outlier points
geom_jitter() + 
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))   

ggsave(
  filename=figure_file,
  width=10,
  height=10
)

我收到以下错误:

grDevices::pdf(..., version = version) 中的错误:

无法打开文件'file.pdf'

调用:ggsave -> 设备 ->

执行停止

我认为我的 R 版本最近更新到 3.2.0,并且我已经确认它在 v3.1.1 中运行良好,所以我假设这是与版本相关的。我还确认可以将 csv 文件写入目录。

任何想法如何解决这个问题?

【问题讨论】:

  • 能否请您发布您正在使用的代码?
  • 您对当前工作目录有写权限吗? getwd() 返回什么?
  • 在帖子中回答了 2 个以上的 cmets
  • file.info("/data/mda/20150604-1Mb-full_comparison-low_depth_hTERT/result/comparison_figure/")$isdir 是否返回 TRUE?这真的只是一个文件权限问题。阅读不同于写作。你能写到那个目录吗?
  • 你的pdf打开了吗?

标签: r pdf ggplot2


【解决方案1】:

我认为您正在尝试写入一个不存在的文件夹,据我所知 grDevices 不允许这样做。 Someone else 似乎也有类似的问题。

我在 R 3.1.1 和 3.2.1 中都尝试了您的代码——它们都给出了相同的错误(除非事先创建了目录。

您可以尝试添加以下代码行:

dir.create(file.path(dirname(figure_file)))

它会为你创建目录。

【讨论】:

  • 该目录确实存在,我可以将 .csv 文件写入其中,但由于某种原因不能写入 pdf。不,pdf未打开。我刚刚从我们的系统管理员那里听说我的写权限存在一些奇怪的问题,所以请稍等。感谢您的回复
【解决方案2】:

我有相同的,结果我已经在该目录中保存了一个同名的对象,显然不会被覆盖。

【讨论】:

    【解决方案3】:

    Error in grDevices::pdf 的原因之一是写权限。适当的写权限应该可以解决这个问题。 - chmod 777 -R dirname

    【讨论】:

      【解决方案4】:

      T 遇到了同样的问题,发现 here() 没有指向 R 脚本文件所在的正确目录。解决方案是,尝试将 here() 指向正确的目录,或者关闭\退出 R studio 并直接在 R studio 中打开脚本,即重新打开 R studio,here() 将自动指向同一目录至于脚本。

      【讨论】:

        【解决方案5】:

        我在运行 for 循环以创建许多包含图表的 pdf 文件时遇到此错误。

        对我来说,当我简单地关闭之前打开的一个 pdf 文件以检查我的输出时,错误就解决了。 R 抛出错误是因为我打开了文件,所以它无法覆盖它。这是导致此错误的另一个可能原因。

        【讨论】:

          【解决方案6】:

          当我的文件名太长时,我得到了同样的错误 - 因此 Windows 中的路径名超出了允许的字母限制。缩短文件名解决了这个问题。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-02-10
            • 1970-01-01
            • 1970-01-01
            • 2020-08-27
            • 1970-01-01
            • 2016-07-28
            • 2011-07-16
            • 2014-06-19
            相关资源
            最近更新 更多