错误:无法启动png()设备

时间:2017-07-15 01:30:48

标签: r

我正在使用Windows。当尝试在png设备上绘制图形时,它会因错误而失败。

我的代码:

png("C:\\plot1.png", width = 480, height = 480, units = "px", bg = "white")

par(mar= c(4, 4, 2, 1))

hist(pwrcon$Global_active_power,col = "red", main = "Global Active Power", xlab = "Global Active Power (kilowatts)")

dev.off()

错误:

Error in png("C:\\plot1.png", width = 480, height = 480, units = "px",  : 
  unable to start png() device
In addition: Warning messages:
1: In png("C:\\plot1.png", width = 480, height = 480, units = "px",  :
  unable to open file 'C:\plot1.png' for writing
2: In png("C:\\plot1.png", width = 480, height = 480, units = "px",  :
  opening device failed

任何人都可以帮我解决这个问题吗?

提前致谢

15 个答案:

答案 0 :(得分:2)

在PC上遇到同样的问题。问题是有一个防病毒程序启用了“安全文件”,这阻止了Rstudio创建图形文件。阻止时防病毒软件没有显示任何信息,因此它并没有给你任何线索。

答案 1 :(得分:2)

在处理r-markdown文档时,我遇到了同样的问题。

在我看来,该问题与查看块内联输出有关。当我切换到在控制台中查看“块输出”时,它工作得很好。

答案 2 :(得分:1)

文件名C:\plot1.png包含一个反斜杠(\),它是一个转义字符。这会导致您获得的错误。

将其更改为斜杠(/

png("C:/plot1.png", width = 480, height = 480, units = "px", bg = "white")

或加倍反斜杠(\\):

png("C:\\plot1.png", width = 480, height = 480, units = "px", bg = "white")

答案 3 :(得分:1)

我无法解释为什么,但是我曾经发现,当保存RStudio项目的文件夹路径是一个很长的字符串时,png设备将失败。当我缩短文件夹路径时,它起作用了。

答案 4 :(得分:1)

我也收到此错误:“错误(函数(文件名=“ Rplot%03d.png”,宽度= 480,高度= 480 ,: 无法启动png()设备”

我正在处理的.Rmd文件的名称包含一些非英语字符,因此删除它们对于我的情况很有帮助。

答案 5 :(得分:1)

在 Windows 10 中也遇到了类似的问题,我的 R 脚本与 RScript.exe 放在同一个文件夹中,使用包 ggplot2。但是我收到了消息 could not open file 'Rplot001.png'

终于找到了两种解决问题的方法:

  1. 将 R 脚本移动到除 RScript.exe 所在文件夹之外的任何其他文件夹。
  2. 首先使用命令 setwd("YourPath") 设置工作目录,然后执行其他操作。

答案 6 :(得分:0)

另一个问题可能是您的Rstudio可能已更新。我在R-markdown内部工作时遇到了这个问题。在常规R脚本中尝试代码仍然有效。尝试将markdown保存为新文件。这应该暂时解决问题。

不知道长期解决方案。

答案 7 :(得分:0)

我有同样的错误信息。原来,路径名中有一个错字。 除了这些问题之外,从CRAN重新安装ggp​​lot和tydiverse似乎对某些问题有用,请参见here

答案 8 :(得分:0)

今天我在RMarkdown笔记本上工作时也遇到了此错误(昨天很好)。如果我编辑一个块然后尝试运行它,则会出现此错误。如果我然后保存笔记本并再次尝试该块,它将起作用。我的工作目录是OneDrive文件夹。我不知道这可能是个问题。

编辑后必须保存所有内容并不是一种理想的方法,而是一种解决方法。

答案 9 :(得分:0)

我添加了“ dev.off() “在绘图之前,问题已解决。原因可能是由于先前的设备尚未关闭。

答案 10 :(得分:0)

我收到上述错误

Error in (function (filename = "Rplot%03d.png", width = 480, height = 480, : unable to start png() device Calls: <Anonymous> ...

我的问题是在我的R-markdown文档的一个R-code块中使用fig.width选项,以及将输出呈现为html文档时。与其他代码块中的其他fig.width选项相比,fig.width太大。同样,只有当我尝试将其呈现为html文档而不是PowerPoint演示文稿时,才会观察到这种情况。

答案 11 :(得分:0)

此问题已解决,但我认为如果可以使某人的生活更轻松,我可以添加我的答案。 当然,您可以将wd设置为一些短路径(或没有特殊字符的路径):setwd("c/Users/John/My_r_project) 但是我在工作中使用R,因此我的R项目保存在具有超长路径的通用驱动器上,并且我的工作目录必须很长。解决方法是:

```{r setup, include=FALSE}
knitr::opts_chunk$set(
    fig.path = "c/Users/John/My_r_project/figures" #make sure you create the folder first in Windows
)
```

您当然也可以在其中添加其他选项,例如:dpi = 300echo = FALSE,...

答案 12 :(得分:0)

我在 Jupyter notebook 中运行 R 时遇到了同样的问题。我做了很多谷歌搜索并尝试了一切可能。它对我有用的唯一方法是重新启动内核。但是,如果您已经训练了花费很长时间的模型,那么重新启动内核并不是一个好的解决方案。

答案 13 :(得分:0)

这开始发生在我使用 RMarkdown 的时候。我的解决方案是重新启动 R 并清除输出,然后重新运行。我不知道为什么会这样。

答案 14 :(得分:-1)

我看到了这条消息,发现这是因为png文件被其他软件或进程占用了。

所以关闭软件或进程,然后重新启动rstudio。