1. 程式人生 > >R語言——在linux環境下如何畫圖或儲存圖片

R語言——在linux環境下如何畫圖或儲存圖片

通常在win環境下,我們利用RStudio畫圖非常方便,直接plot就可以展現出圖片,但是在linux環境下,我們通過shell則無法畫圖。

問題

例如我們在linux下的R中輸入如下命令:

png('test.png')

則會出現如下錯誤資訊:

Error in .External2(C_X11, paste("png::", filename, sep = ""), g$width,  :
  unable to start device PNG
In addition: Warning message:
In png("test.png") : no png support in this version of R
此時提示png不被支援,我們輸入如下命令:
capabilities()

螢幕出現如下提示:

    jpeg      png     tiff    tcltk      X11     aqua http/ftp  sockets
   FALSE    FALSE    FALSE    FALSE    FALSE    FALSE     TRUE     TRUE
  libxml     fifo   cledit    iconv      NLS  profmem    cairo
    TRUE     TRUE     TRUE     TRUE     TRUE    FALSE    FALSE

可以看到png確實是不被支援的。

解決辦法:

使用圖形渲染庫Cairo。在R裡面安裝Cairo包,如果需要離線安裝Cairo請參考連結:點選開啟連結

在shell裡執行命令:

R CMD INSTALL Cairo.tar.gz

但是在執行的過程中出現瞭如下錯誤:
configure: error: Cannot find cairo.h! Please install cairo (http://www.cairographics.org/) and/or set CAIRO_CFLAGS/LIBS correspondingly.

原因為linux系統沒有安裝Cairo庫,解決辦法為在shell中執行:
yum -y install cairo* libxt*

再次嘗試執行:
R CMD INSTALL Cairo.tar.gz

又報瞭如下錯誤,崩潰:
fatal error: X11/Intrinsic.h: No such file or directory

原因應該是又沒有安裝Intrinsic這個東西,所以在shell中執行:
yum -y install */Intrinsic.h

安裝完成後,再次嘗試執行:
R CMD INSTALL Cairo.tar.gz

終於成功,自己都為自己感動了大哭

使用方法:

以下為一個小例子:

library(Cairo)
CairoPNG('test.png') ## 開啟畫圖
plot(graph)## 自定義畫圖
dev.off()## 關閉畫圖

執行完成之後,會發現相應的資料夾中出現了test.png這個圖片。

同時我們也可以輸入如下命令檢視圖片格式的支援情況:

Cairo.capabilities()

可以看到png已經為TRUE。