【问题标题】:Still getting error in dev.off() : cannot shut down device 1 (the null device)dev.off() 中仍然出现错误:无法关闭设备 1(空设备)
【发布时间】:2018-06-20 04:24:04
【问题描述】:

我是 R 新手,所以我不完全知道要提供什么样的信息来获得帮助,但这里是这样: 当我尝试制作绘图时,我收到错误“dev.off() 中的错误:无法关闭设备 1(空设备)”......任何绘图。我最新的代码是:

pdf("spec_accum_w_sample.pdf")
plot(specaccum(counts))
dev.off()

成功生成了一个空的 pdf 文件和一个绘图,但是当我编写 dev.off() 时,它不会写入创建的 pdf。相反,我得到了上面的错误。我已尝试重新启动 RStudio 以及此链接上建议的任何其他内容: Error in dev.off() : cannot shut down device 1 (the null device)。我还尝试了票证上建议的初始代码来重新创建作者的饼图,但尽管尝试了所有建议,但仍然得到同样的错误

我没有找到任何其他地方可以解决此特定错误。我在跑步 R 版本 3.4.4 (2018-03-15) 平台:x86_64-apple-darwin15.6.0(64位) 运行于:macOS Sierra 10.12.6

还有什么我可以尝试的吗?我应该安装一些东西或更新一些东西来让 dev.off() 工作吗?

【问题讨论】:

  • 您遇到与plot(1:10. 1:10) 相同的错误?如果不是,specaccum 函数从何而来?您确定没有其他错误消息吗?寻求帮助时,您应该包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出。
  • specaccum 来自 vegan 包。不过剧情无关紧要。我得到相同的 dev.off() 错误任何情节,包括你建议的情节。我在我的 R 笔记本中看到了绘图,但我无法将它打印到我为它创建的 test.png 文件中
  • 哦,您使用的是 R Notebooks?这是一个重要的细节。如果您只是在 R 控制台中运行它,它可以正常工作吗?您是否尝试将绘图回显到笔记本中并将其写入文件?
  • 如果我尝试在 R 控制台中运行任何绘图,我会收到错误(空设备 1)。我认为基本上情节是回显到笔记本中,然后使用 dev.off() 写入文件。
  • 据我所知,至少有一个设备处于活动状态是必要的,通常情况下,它是不可见的。然后,当您尝试使用 dev.off() 关闭它时,您会收到错误消息。

标签: r


【解决方案1】:

试试这个:(它对我有用,但会关闭任何打开的绘图设备)。

while (!is.null(dev.list()))  dev.off()

【讨论】:

  • 这是一个很好的建议,可用于需要较长时间才能输出图形的函数,即您在一个大列表上循环一个 facet_grid。 dev_off() 一直试图在网格绘图的中间运行。
【解决方案2】:

确保您的 pdf 在您的工作目录中生成。运行getwd() 以检查工作目录是什么。如果 pdf 不存在,请将工作目录更改为使用 setwd("/my/working/directory") 生成 pdf 的位置。

或者尝试打开一个新设备,然后创建一个 pdf,一个绘图,并将其写入 pdf:

dev.new()
pdf("spec_accum_w_sample.pdf")
plot(specaccum(counts))
graphics.off()

【讨论】:

  • 感谢您的建议。我设置了我的工作目录,但情节 dev.off() 仍然给了我同样的错误
  • 保存为 png 是否会引发相同的错误。要测试只需使用png() 函数而不是pdf()
  • 测试了 png()、jpg()、pdf() 和 svg() 函数。我在我的 wd 中获得了使用给定名称创建的空文件,我在我的笔记本中获得了一个现成的绘图回显。我只是无法让 dev.off() 用绘图的图像填充空文件
  • Hacky 但是你可以尝试关闭所有打开的设备吗?使用graphics.off() 而不是dev.off()
  • 聚会晚了,但笔记本不同于.R 文件。使用笔记本时,RStudio 似乎以不同于纯代码文件的方式转移图形。我们尝试了所有在网上找到的修复程序,但都没有奏效。然后我们将有问题的代码移到一个名为test.R 的干净文件中,一切正常。从笔记本文件执行的上下文似乎是原因,因为它们不是为轻松导出图形而构建的,至少不是使用 set device/plot/close device 模式。
猜你喜欢
  • 1970-01-01
  • 2016-02-02
  • 2021-12-31
  • 2015-03-19
  • 1970-01-01
  • 2017-11-19
  • 1970-01-01
  • 2021-12-28
相关资源
最近更新 更多