无法打开设备(例如png)以在RMarkdown中绘图,但不能打开R脚本

时间:2017-06-28 17:20:57

标签: r rstudio knitr

一个最小的例子:

以下R脚本提供正确的输出:

png("test.png")
dev.cur() #quartz_off_screen 2
plot(1:10)
dev.off() #null device 1, file "test.png" generated in getwd()

但是,当我将这些代码包装在R markdown块中时,如果我将逐行发送到控制台,我会得到以下结果:

```{r}
png("test.png")
dev.cur() #null device 1
plot(1:10)#plot appears inline in the editor's pane
dev.off() #Error in dev.off() : cannot shut down device 1 (the null device)
# file "test.png" not generated
```

相同的代码运行正常并生成预期的文件,如果它不是逐行运行,而是使用运行当前块函数。

在遇到任何绘图函数时,似乎Rstudio内部调用“dev.new()”,因此它可以将所有绘图输出定向到编辑器的窗格。

我想知道这是否是Rstudio中的设计,以及其他用户是否发现这种行为不直观 - 我花了很长时间才找到问题的根源,因为无法打开png设备和输出像我以前那样的情节。

1 个答案:

答案 0 :(得分:0)

您使用的是笔记本电脑版本。

http://rmarkdown.rstudio.com/r_notebooks.html#overview

您可以通过单击编辑器工具栏中的齿轮并在控制台中选择Chunk Output来禁用笔记本模式。