【发布时间】:2016-02-02 19:10:39
【问题描述】:
我正在使用在 OSX 中运行 R 内核 (3.2.2) 的 Jupyter 笔记本,完成一些基本的统计练习。几天前,我第一次玩 ggplot,并从笔记本单元运行一些命令,尝试打印到 pdf 文件,换句话说,使用类似以下内容:pdf("file.pdf"); plot(x, y); dev.off()我没有保留任何这些单元格内容,所以我看不到我运行的确切内容,但我想有可能我创建了一些 pdf 文件并且没有包含 dev.off() 命令?
我的问题是,自那次会议以来,现在我在任何笔记本中运行的每个单元格(包括新的空白单元格)都会生成一个不需要的 pdf 文件。如果该代码涉及绘制图形,则 pdf 包含该图形,如果代码是其他任何内容,则无法打开创建的 pdf。我找不到任何方式来阻止这些 pdf 文件的创建。
如果我去一个新的空白笔记本:
运行dev.list() 返回pdf: 2
运行dev.cur() 返回pdf: 2
运行dev.off() 返回null device: 1
但是,如果紧接着,我再次运行dev.list() 或dev.cur(),它们再次返回pdf: 2
我能够打开更多新设备,dev.off() 成功关闭它们。但是这个pdf: 2 设备不会消失。我尝试终止所有会话,重新启动机器等,但无济于事;建议?
此外,如果我从终端中的控制台运行 pdf() 命令(即,不是从笔记本电脑),我的绘图显示为由 Quartz 生成;我知道这可能是 Quartz 问题而不是 R 问题,但我的问题仍然存在,我该如何关闭此设备,或者以其他方式阻止创建所有这些 pdf?
【问题讨论】:
-
您是否尝试过两次运行 dev.off() 命令? dev.off();dev.off() 有时我发现我必须关闭一个额外的设备,即使我没有打开一个额外的设备。
-
感谢您的建议。我没有这样做,但它不起作用。它返回
Error in dev.off(): cannot shut down device 1 (the null device),然后像以前一样,dev.list()和dev.off()继续返回pdf: 2 -
请注意,至少有一个设备需要处于活动状态,因此如果您尝试关闭最后一个设备,则会收到错误消息。但如果您打开了多个设备,您可以使用 dev.off() 关闭其中的一些。