我正在使用在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被创建?
答案 0 :(得分:0)
当sink()
已打开但未关闭时,这可能是一个问题,可能是因为在达到结束代码之前发生了错误。
尝试使用此插头打开水槽:
sink(NULL)
ht @mdsumner
答案 1 :(得分:0)
class="img-fluid"
应强制关闭所有设备。请查看this page,以获取更多有用的信息。