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。





你可能感兴趣的:(R,linux)