R中的错误:无法打开与X11的连接


9

我只是在计算机上设置了fedora发行版,然后慢慢尝试从命令行学习如何工作。我正在测试R中一切正常,除了出于某种原因再次尝试时,我突然似乎无法绘制图。我得到错误:

> x = 1:5
> y = x^2
> plot(x,y)
No protocol specified
Error in X11(d$display, d$width, d$height, d$pointsize, d$gamma, d$colortype,  : 
  unable to start device X11cairo
In addition: Warning message:
In function (display = "", width, height, pointsize, gamma, bg,  :
  unable to open connection to X11 display ''

当我检查功能时,我看到的X11FALSE

> capabilities()
No protocol specified
    jpeg      png     tiff    tcltk      X11     aqua http/ftp  sockets 
    TRUE     TRUE     TRUE     TRUE    FALSE    FALSE     TRUE     TRUE 
  libxml     fifo   cledit    iconv      NLS  profmem    cairo 
    TRUE     TRUE     TRUE     TRUE     TRUE    FALSE     TRUE 

尽管我不知道这些设备是否已连接,但X11应该打开了?

在ssh连接上工作时,我到处搜索的人似乎都遇到了这个问题(我尚未了解到底是什么:$)。

我希望知道这个问题的人能很好地向我解释问题并提出解决方案。


1
在开始R之前,您可以发布echo $DISPLAY
Karlson 2012年

该命令的结果为“:0”
约翰·

1
R怎么样:Sys.getenv("DISPLAY")
Karlson

嗯,这只bash: syntax error near unexpected token
约翰·

执行以下操作:Sys.getenv(DISPLAY)Sys.getenv('DISPLAY')Sys.getenv(c("DISPLAY"))
Karlson 2012年

Answers:


6

在其他地方有许多与Cairo软件包相关的线程。

其中之一 提到X11类型的更改,但是其中大多数指出R不知道显示的内容并建议这样做:

Sys.setenv("DISPLAY"=":0.0")

或者,在较旧的系统上,

Sys.putenv("DISPLAY"=":0.0")

5
不幸的是,该解决方案或另一线程中提到的解决方案都无法解决此问题。:/我的软件包还坚持要求我使用Sys.setenv而不是putenv ..不知道hte new命令是否不同?
2012年

3
Sys.putenv不赞成使用Sys.setenv
Karlson

1
下次我尝试使用此功能时::。在上一届会议上一定有什么奇怪的地方
约翰·约翰逊,2012年

1

如果你没有任何本地X服务器,您可以安装虚拟帧缓存的X11服务器喜欢这里说

apt-get install xvfb xauth xfonts-base

然后,您可以像下面所说的那样启动一个新实例:

Xvfb :0 -ac -screen 0 1960x2000x24 &

然后,如果您的R是使用with-x配置选项编译的(默认情况下启用),则您应该具有X11功能,而只需要在R中声明此功能:

Sys.setenv("DISPLAY"=":0")
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.