无法显示png

时间:2013-06-21 20:18:10

标签: r x11 xserver shiny

我正在VM(Red Hat Enterprise Linux Server 6.4版)上运行R-shiny(R版本3.0.1(2013-05-16))。一切正常,即服务器启动,应用程序运行等...只要我不尝试绘制图形

renderPlot

然后我在主面板上看到一条消息[错误:无法启动设备png]。我会发布我的整个代码,但我认为这个问题与我使用时的渲染图有关     renderText 并吐出一些工作得很好的数据。

其实当我输入时     PNG() 在R我得到这个错误 [ .External2中的错误(C_X11,粘贴(“png ::”,文件名,sep =“”),g $ width ,:   无法启动设备PNG 另外:警告信息: 在png()中:无法打开与X11显示的连接'' ] 当然,如果我通过ssh -X转发到我的mac,我可以输入 png()没问题并绘制数据等......

- 还有一些事情需要注意,当我输入功能时()我发现唯一不对的是jpeg,tiff,X11,aqua和profmem(所以png和cairo都是True)

- 我在从源代码构建R之前安装了libpng,cairo和libX11,libX11-devel,libXt,libXt-devel

我猜我的问题是我需要运行X服务器。此外,DISPLAY变量为null。

所以,我猜它归结为它我的问题是......假设我的逻辑是正确的。

1)我是否需要运行/启动X服务器[目前因某种原因启动后终止]或者我可以设置DISPLAY变量吗?

2)如果我可以设置我的DISPLAY变量应该将它设置为什么(localhost:0.0没有工作)

显然,如果有什么我想念的话,这些问题可能无关紧要。

提前致谢并且对于漫无边际的对不起,想要彻底。

PJ

2 个答案:

答案 0 :(得分:9)

如果设置option(bitmapType = 'cairo')会有帮助吗?我一直怀疑R如何使用.Call(C_cairoProps, 2L)中的grDevices:::.onLoad()选择位图设备类型(这可能是一个错误,但我不能肯定地说出来。)

如果bitmapType的测试失败,则Xlib选项会回退到cairo,因此会向您提供有关X11的含义错误消息。请注意type中的png()参数:

> args(png)
function (filename = "Rplot%03d.png", width = 480, height = 480, 
    units = "px", pointsize = 12, bg = "white", res = NA, ..., 
    type = c("cairo", "cairo-png", "Xlib", "quartz"), antialias) 

此参数的默认值为getOption('bitmapType'),在您的情况下,由于Xlib中的测试,它为grDevices:::.onLoad()。如果您100%确定cairo有效,则可以在~/.Rprofile中更改此选项。

答案 1 :(得分:1)

我能够通过安装一些额外的开发包然后从源代码卸载/重新安装R来解决这个问题。在此之前,所有其他推荐的选项对我都不起作用。

sudo yum install pango-devel pango libpng-devel

转到安装了源R文件的目录:

make uninstall
./configure --with-readline=no (or ./configure might work for you)
make
make install
相关问题