Ask Your Question

Compiling R with PNG support

asked 2010-11-07 11:24:19 -0600

Jason Bandlow gravatar image

I just compiled sage 4.6 from source on an Ubuntu 10.04 machine. I have the xorg-dev packages installed. However, I still cannot get r to save the plot of a histogram. Specifically, I am getting:

sage: r.png('/tmp/histogram.png') 
RuntimeError: R was not compiled with PNG support

What does work is:

sage: r.X11()
sage: r.hist("rnorm(100)")

But I can't save the resulting graphic. (Of course, I can print-screen and get it that way, but I was hoping there would be a better way.) Can I compile R with PNG support somehow? Or is there another workaround which will give me what I want (namely, saving a picture of a histogram)?


edit retag flag offensive close merge delete

6 answers

Sort by » oldest newest most voted

answered 2010-12-23 08:27:50 -0600

macieksk gravatar image

updated 2011-03-24 10:29:46 -0600

I had a very similar looking problem on Ubuntu 10.04.1 server but it turned out to be the following:

I was running my Sage notebook server through ssh session in a console. This way X11 are not accessible to R and R reports no png/jpg/X11 support with capabilities().

I tried to run Sage through virtual framebuffer (xvfb-run), but it didn't work either (edit: now it works, with sage 4.6.2, go on and try it). The solution i've found was to run Sage under X11 through VNC.

edit flag offensive delete link more

answered 2011-04-21 05:41:48 -0600

Jason Grout gravatar image

I solved this on Ubuntu by installing the libpango1.0-dev and libcairo-dev packages. I had also earlier installed the xorg-dev package, but I don't know if it is actually needed here.

edit flag offensive delete link more

answered 2010-11-09 02:51:50 -0600

Jason Bandlow gravatar image

(This should maybe be a comment, but I'm posting as an answer for better formatting.) I just discovered the following:

sage: r.eval('capabilities("png")')
'  png \nFALSE '
sage: r.eval('capabilities("X11")')
' X11 \nTRUE '

So apparently, I have X11 support, but not PNG support. Does that suggest anything that I might be able to do?

edit flag offensive delete link more


This was the key. I did not have libpng installed. I installed it, re-compiled r with sage -f, and everything works. Thanks for your help, everyone!

Jason Bandlow gravatar imageJason Bandlow ( 2010-11-09 04:00:33 -0600 )edit

cool! -- glad to help

niles gravatar imageniles ( 2010-11-09 04:05:17 -0600 )edit

could you be more specific? I apt-get installed xorg-dev and libpng12-dev, then "sage -f"'ed the package r-2...spkg, but then I had no png and no X11 capabilities. (running sage from a ssh console here: were you inside an X11 session?)

pangard gravatar imagepangard ( 2010-12-24 05:09:00 -0600 )edit

answered 2010-11-08 13:44:28 -0600

kcrisman gravatar image

updated 2011-04-18 04:37:33 -0600

This isn't an answer per se (you and I've discussed this before!), but at least I thought I'd put the following as the relevant Trac ticket: #8868.

I am puzzled as to why your Ubuntu installation isn't compiling with png support, though. R install guide says

‘libX11’, ‘libX11-devel’, ‘libXt’ and ‘libXt-devel’.

is needed, but you are right that xorg-dev should give you this. In our spkg-install it says

if [ -f /usr/include/X11/Xwindows.h ]; then

so perhaps that isn't detecting your stuff. Thanks to David Kirkby, we also have

   if [ "x`uname`" = xSunOS ] && [ -f /usr/X11/lib/ ] ; then 

but that only would work on Solaris. We really just need to ask on r-devel about this; r-help has been of no help, but I've been reluctant to join r-devel since I know very little about R internals. But we just need to figure out what R precisely needs to allow png, and then have it compile every time those things are there.

edit flag offensive delete link more


I don't think we've discussed this before (maybe that was Jason Grout?). The file /usr/include/X11/Xwindows.h is present on my system; I'll try at some point to take a look at the spkg-install in more detail and see if I can't figure out what is failing. Thanks for pointing out the Trac ticket!

Jason Bandlow gravatar imageJason Bandlow ( 2010-11-09 02:01:42 -0600 )edit

I thought you were 'ancienthart', so I thought we'd discussed this before. But if you have this file, it should definitely compile with png support. Weird. Unfortunately, I have no idea how to get the graphic that displays out, other than figuring out where it is (there are canonical temp files for such things, but I don't know exactly where they are).

kcrisman gravatar imagekcrisman ( 2010-11-09 02:17:10 -0600 )edit

answered 2010-11-09 02:30:42 -0600

niles gravatar image

looking at the variable SAGE_TMP will, I think, give you an idea of where the displayed images are being stored -- for me (Mac), all the displayed images are in that directory.

It's mentioned, for example, in the Developer's Guide section about saving output files in automated tests.

edit flag offensive delete link more


Thanks, I'll try this.

Jason Bandlow gravatar imageJason Bandlow ( 2010-11-09 02:57:14 -0600 )edit

answered 2011-11-19 10:27:04 -0600

Volker Braun gravatar image

I just made a new r spkg at which should help with graphics. Please test if you can and leave your feedback on the trac page.

edit flag offensive delete link more


Yeah, I saw that. Does one need the libpango/libcairo, to your knowledge?

kcrisman gravatar imagekcrisman ( 2011-11-19 13:54:23 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2010-11-07 11:24:19 -0600

Seen: 3,774 times

Last updated: Nov 19 '11