报错:

Error in .External2(C_X11, paste0(“png::”, filename), gLinux下 R语言不能绘图 unable to start device png的解决方法。_当前目录height, :
unable to start device PNG
In addition: Warning message:
In png() : unable to open connection to X11 display ‘’。

排查:

进入R
首先在R中输入 capabilities():
查看图片是否可用 对应的包是否为TRUE
png jpeg tiff pdf svg ps x11 win raster
TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE TRUE

不为TRUE则需要重新安装。

【解决办法 1】:

不使用X11生成,使用 图形渲染库Cairo。

【步骤1】:安装Cairo包
install.packages(“Cairo”)

【步骤2】:加载Cairo后,查看支持

library(Cairo)
Cairo.capabilities()
png jpeg tiff pdf svg ps x11 win raster
TRUE FALSE FALSE TRUE TRUE TRUE TRUE FALSE TRUE
说明已经支持用cairo生成图片了

Cairo使用起来非常简单,和基础包grDevices中的函数对应。
CairoPNG: 对应grDevices:png()
CairoJPEG: 对应grDevices:jpeg()
CairoTIFF: 对应grDevices:tiff()
CairoSVG: 对应grDevices:svg()
CairoPDF: 对应grDevices:pdf()

【步骤3】:生成图片

CairoPNG(file=“out.png”,width=800,height=480)
hist(clf2$school)
getwd()
[1] “/home/enn_james”
在当前目录下可以看到生成了图片。

【解决办法 2】:

因为有些函数是只能用png包的 所以第二种直接安装png包

1.首先,退出R,然后安装一堆相关的包
$ sudo yum install libpng libpng-devel libtiff libtiff-devel libjpeg-turbo libjpeg-turbo-devel

2.安装png的包
install.packages(“png”)



./configure --prefix=$prefix --enable-R-shlib --with-x --with-libpng --with-jpeglib && make && make install

查看:
在R中输入 capabilities()

测试:

x<-rnorm(100) # 随机取100个点坐标
y<-rnorm(100)
png(file=“pic_plot.png”, width=640, height=480) # png函数
plot(x, y, col="#ff0000", pch=19, cex=2, main=“plot”)
dev.off()