【报错】:
> hist(clf2$school)
[rsession-enn_james] ERROR r error 4 (R code execution error) [errormsg=Error in .External2(C_X11, paste("png::", filename, sep = ""), g$width, :
无法打开PNG设备
]; OCCURRED AT: core::Error r::exec::evaluateString(const std::string&, SEXPREC**, r::sexp::Protect*) /root/rstudio/src/cpp/r/RExec.cpp:271; LOGGED FROM: DevDesc* r::session::graphics::handler::shadow::<unnamed>::shadowDevDesc(DevDesc*) /root/rstudio/src/cpp/r/session/graphics/RShadowPngGraphicsHandler.cpp:141
Error in RStudioGD() :
Shadow graphics device error: r error 4 (R code execution error)
此外: Warning message:
In grDevices:::png("/tmp/RtmpNwBswU/36f8ee1bfb64447a9d4cb058599b7cff.png", :
无法打开链结到X11显示''
而且输入capabilities函数可以看到不支持png,jpeg这些画图
> capabilities()
jpeg png tiff tcltk X11 aqua http/ftp sockets libxml fifo cledit
FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE
iconv NLS profmem cairo ICU long.double libcurl
TRUE TRUE FALSE FALSE FALSE TRUE FALSE
【解决办法】:不使用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"
在当前目录下可以看到生成了图片
在Rstudio窗口下的右下侧的Files里面,找到刚生成的png文件,点击打开即可看到新生成的图片。