报错:
Error in .External2(C_X11, paste0(“png::”, filename), gheight, :
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()