通常在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。