簡體   English   中英

似乎無法在 R 中使用 dev.off() 關閉設備

[英]Can't seem to turn off a device using dev.off() in R

我正在使用在 OSX 中運行 R 內核(3.2.2)的 Jupyter 筆記本,完成一些基本的統計練習。 幾天前,我第一次玩 ggplot,並從筆記本單元運行了一些命令,嘗試打印到 pdf 文件,換句話說,使用如下內容: pdf("file.pdf"); plot(x, y); dev.off() pdf("file.pdf"); plot(x, y); dev.off() 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?

sink()已打開但未關閉時,這可能是一個問題,可能是因為在到達關閉代碼之前發生了錯誤。

試試這個來塞住一個開放的水槽:

sink(NULL)
ht @mdsumner
graphics.off() 

應強行關閉所有設備。 查看此頁面以獲取更多有用信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM