• 软件
  • Rstudio在Linux下绘图报错:no png support in this version of R

各位好:

我是才接触R语言的新人,在Linux下装好R和Rstudio运行正常,可是在执行绘图之类的函数时会报错

> plot(x,y)

Error in RStudioGD() :

Shadow graphics device error: r error 4 (R code execution error)

In addition: Warning message:

In grDevices:::png("/tmp/RtmpT84Enq/0a0dd9029a3c4486b127ed543273dd11.png", :

no png support in this version of R

类似的绘图函数都会报错。

我在Linux下使用R直接操作的话不会出现问题,能够成功执行,所以感觉问题在Rstudio上

本来以为因为没有安装X WINDOWS的原因,从装之后毅然报错

不知道原因出在哪里,所以发帖请各位不吝赐教

非常感谢!

capabilities()

你是怎么安装的,你大概得重新安装并在其过程中指定让加入png的支持才行。

回复 第2楼 的 yanlinlin82:下载好依赖库后 直接rpm安装的 请问怎么指定加入png的支持呢?

回复 第2楼 的 yanlinlin82:> 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

> sessionInfo()

R version 3.1.1 (2014-07-10)

Platform: x86_64-unknown-linux-gnu (64-bit)

locale:

[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C

[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8

[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8

[7] LC_PAPER=en_US.UTF-8 LC_NAME=C

[9] LC_ADDRESS=C LC_TELEPHONE=C

[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

attached base packages:

[1] stats graphics grDevices utils datasets methods base

请问是PNG X11 是FALSE的原因吗 怎么设置为TRUE呢?

回复 第4楼 的 tony.hw:是的,capabilities() 正是表示你的 R 是否支持相应的特性。这个不能设置,它是依靠安装来解决的。我知道从源码编译是有选项可以将该特性加上的,但rpm包是否有支持就不确定了,你可能得自己找一下。

回复 第5楼 的 yanlinlin82:网上找了好久找不到方法,我准备从装了。源码编译如何选择将这个加上呢?谢谢!

回复 第6楼 的 tony.hw:用源码编译 GNU 软件的同学,一定要学会并记住使用 ./configure --help

回复 第7楼 的 yanlinlin82:嗯,果然是安装时出现的问题,非常感谢您的回答!

5 年 后

我最近在学习使用学校的并行计算资源,遇到了十分类似的问题。
我的代码中有几句ggsave(),比如

ggsave(paste(file_path, i, " ", j, ".png", sep=""), plot=graph, device="png", width=w[i], height=h[j], units="cm", dpi=600)

在运行的时候会报如下错误:

Error in .External2(C_X11, paste0("png::", filename), g$width, g$height,  : 
  unable to start device PNG
In addition: Warning message:
In grDevices::png(..., res = dpi, units = "in") :
  no png support in this version of R

附环境信息:

> sessionInfo()
R version 3.5.3 (2019-03-11)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)
Matrix products: default
BLAS/LAPACK: /util/academic/intel/18.3/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64_lin/libmkl_gf_lp64.so
locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
attached base packages:
[1] parallel  stats     graphics  grDevices utils     datasets  methods  
[8] base     
other attached packages:
 [1] doParallel_1.0.14 iterators_1.0.10  foreach_1.4.4     forcats_0.4.0    
 [5] stringr_1.4.0     dplyr_0.8.0.1     purrr_0.3.2       readr_1.3.1      
 [9] tidyr_0.8.3       tibble_2.0.1      ggplot2_3.1.0     tidyverse_1.2.1  
[13] magrittr_1.5     
loaded via a namespace (and not attached):
 [1] Rcpp_1.0.0       pillar_1.3.1     compiler_3.5.3   cellranger_1.1.0
 [5] plyr_1.8.4       tools_3.5.3      jsonlite_1.6     lubridate_1.7.4 
 [9] gtable_0.2.0     nlme_3.1-137     lattice_0.20-38  pkgconfig_2.0.2 
[13] rlang_0.3.1      cli_1.0.1        rstudioapi_0.10  haven_2.1.0     
[17] withr_2.1.2      xml2_1.2.0       httr_1.4.0       generics_0.0.2  
[21] hms_0.4.2        grid_3.5.3       tidyselect_0.2.5 glue_1.3.1      
[25] R6_2.4.0         readxl_1.3.1     reshape2_1.4.3   modelr_0.1.4    
[29] codetools_0.2-16 backports_1.1.3  scales_1.0.0     rvest_0.3.4     
[33] assertthat_0.2.0 colorspace_1.4-0 labeling_0.3     stringi_1.4.3   
[37] lazyeval_0.2.2   munsell_0.5.0    broom_0.5.2      crayon_1.3.4    

学校计算机集群里的软件我是没有安装或删除权限的(但是我可以在自己的用户文件夹里装新的R包)。请问我应该怎么解决这个问题呢?

谢谢!


Heterogeneity 更改标题为「Rstudio在Linux下绘图报错:no png support in this version of R