是否有一種簡單的方法來轉換R中的所有GUI元素,並僅通過OSX上的命令行來運行它?禁用R,圖形設備R
我想在我的OSX機器上覆制遠程linux終端的行爲。因此,plot()應該只保存一個文件,而CRAN鏡像選擇應該是文本,而不是Tk接口。我無法找到設置此行爲的位置。
是否有一種簡單的方法來轉換R中的所有GUI元素,並僅通過OSX上的命令行來運行它?禁用R,圖形設備R
我想在我的OSX機器上覆制遠程linux終端的行爲。因此,plot()應該只保存一個文件,而CRAN鏡像選擇應該是文本,而不是Tk接口。我無法找到設置此行爲的位置。
我沒有自己的OS X中,但你嘗試取消設置X11環境變量DISPLAY:
DISPLAY = 「」 R --vanilla
當我這樣做,在Linux上,查詢R爲capabilties()
,x11根據需要變爲FALSE。
對於圖,您可以使用pdf()命令(或png(),jpeg()...)將輸出指向文件。
我不運行OSX,但可以嘗試從終端應用程序運行R,而不是運行Mac OSX啓動程序,並查看它是否按照您的需要運行。
正如Matti寫道的,您可以使用以下命令將輸出發送到文件;但我不知道這是否真的是你問題的實質。
png("pngfile.png")
plot(foo)
title(main="bar")
dev.off()
所以不是石英圖形對象,而是輸出到文件。
同樣,您可以輸出通常會在終端中出現的文件。
sink("foo.file")
即使命令行R在默認情況下也會打開一個石英窗口,如果該功能存在。我發現禁用它的唯一方法是編譯R而沒有aqua支持,但這並不理想。 – Tristan 2010-07-28 16:05:34
使用'png()'命令是一個非常糟糕的例子,因爲png實際上需要一個X11連接來進行渲染。將其替換爲'pdf()' – parasietje 2014-04-22 14:01:13
最新的R可以被編譯爲具有png()支持而不需要X11(通過使用畫布)。以防萬一任何人閱讀此評論。 – dieresys 2016-10-28 17:57:25
我有這個確切的問題,並希望有一種方法來做到這一點,而無需更改我現有的代碼。我通常運行圖形支持,但有時我會在服務器上運行一個腳本來獲取更大的數據集,然後我只想讓這些圖自動輸出到某個地方。
在Dirk的回答中,Ian Fellows給出了簡單的解決方案。在R類型的命令行上:
options(device=pdf)
然後任何圖將直接寫入到當前的Rplots.pdf文件中。
如果你要的文件不被繪製在所有然後用
options(device=NULL)
這確實禁用X11,但留下誇和tcltk如此。 plot()仍然打開一個石英窗口。 – Tristan 2010-07-26 23:17:51
options(device = pdf) – 2010-07-27 17:53:55