R错误保存ggplot pdf

时间:2015-07-14 00:10:26

标签: r pdf ggplot2

当我尝试使用此代码保存使用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)中的错误:

     

无法打开文件&#39; file.pdf&#39;

     

通话:ggsave - &gt;设备 - &gt;

     

执行暂停

我认为我的R版本最近更新为3.2.0,并且我已经确认它在v3.1.1中工作正常,因此我假设这与版本相关。我还确认我可以将csv文件写入目录。

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

6 个答案:

答案 0 :(得分:3)

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

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

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

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

它将为您创建目录。

答案 1 :(得分:1)

我也一样,原来我已经在该目录中保存了一个同名的对象,显然没有被覆盖。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

T面临相同的问题,并发现here()没有指向R脚本文件所在的正确目录。解决方案是,要么尝试将here()指向正确的目录,要么关闭\退出R studio并直接在R studio中打开脚本,即直接打开R studio,然后here()将自动指向同一目录关于脚本的内容。

答案 5 :(得分:0)

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

对我来说,当我简单地关闭了先前打开的一个pdf文件以检查输出时,该错误已解决。 R抛出错误是因为我打开了文件,所以它不能覆盖它。这是造成此错误的另一个可能原因。