Can't display png

I'm running R-shiny (R version 3.0.1 (2013-05-16)) on a VM (Red Hat Enterprise Linux Server release 6.4). Everything works, i.e., server starts up, and application runs etc... as long as I don't try to plot a graph

renderPlot

I then see on the main panel a message [error : unable to start device png]. I would post my whole code but this problem I think has to do with rendering plots as when I use renderText and spit out some data it works just fine.

Actually when I just type in png() in R I get this error [ Error in .External2(C_X11, paste("png::", filename, sep = ""), g$width, : unable to start device PNG In addition: Warning message: In png() : unable to open connection to X11 display '' ] of course if I forward via ssh -X to my mac, I can type in png() no problem and plot data etc...

-A few more things to note, when I type in capabilties() I find the only things that are false are jpeg, tiff, X11, aqua, and profmem (so png and cairo are True)

-I've installed libpng, cairo, and libX11, libX11-devel, libXt, libXt-devel before building R from source

I'm guessing my problem is that I need to have X server running. In addition the DISPLAY variable is null.

So, I guess when it boils down to it my question is ... assuming my logic is correct.

1) Do I need to run / start X server [ currently it terminates after starting for some reason] or can I just set the DISPLAY variable?

2) If I can just set my DISPLAY variable what should I set it to (localhost:0.0 hasn't worked)

Obviously if there is something I'm missing these questions may be irrelevant.

Thanks in advance and sorry for rambling, wanted to be thorough.

PJ

Answers


Does it help if you set option(bitmapType = 'cairo')? I have been skeptical about how R chooses the bitmap device type using .Call(C_cairoProps, 2L) in grDevices:::.onLoad() (this might be a bug, but I cannot say it for sure).

The option bitmapType falls back to Xlib if the test of cairo fails, thus giving you a cryptic error message about X11. Note the type argument in 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) 

The default value of this argument is getOption('bitmapType'), and in your case it is Xlib due to the test in grDevices:::.onLoad(). If you are 100% sure that cairo works, you can change this option, say, in your ~/.Rprofile.


I was able to resolve this by installing a few additional development packages and then uninstalling/reinstalling R from source. All the other recommended options did not work for me until this.

sudo yum install pango-devel pango libpng-devel

Go to directory where source R file was installed:

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

Need Your Help

Rotating and flipping a triangle with pop

ios objective-c rotation cashapelayer facebook-pop

I'm having problems trying to flip a triangle up/down or left/right with pop framework (https://github.com/facebook/pop).

HighCharts to 2 or more identical divs

javascript jquery jquery-selectors highcharts

I have the following code which only populates 1 of the divs: