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

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

我刚刚在我的计算机上安装了一个 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

其他地方有很多与 Cairo 包相关的线程。

其中之一 提到了 X11 类型的变化,但大多数都指出 R 不知道显示是什么,并建议这样做:

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

或者,在旧系统上,

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

答案2

如果您没有任何本地 X 服务器,您可以安装虚拟帧缓冲区 X11 服务器,例如在这里说:

apt-get install xvfb xauth xfonts-base

然后你可以启动一个新实例,例如在这里说:

Xvfb :0 -ac -screen 0 1960x2000x24 &

然后,如果您的 R 是使用with-x配置选项(默认启用)编译的,您应该具有 X11 功能,并且您只需在 R 中声明这一点:

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

相关内容