Ask Your Question
4

Compiling R with PNG support

asked 14 years ago

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)?

Thanks.

Preview: (hide)

6 Answers

Sort by » oldest newest most voted
2

answered 13 years ago

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.

Preview: (hide)
link
2

answered 14 years ago

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?

Preview: (hide)
link

Comments

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 ( 14 years ago )

cool! -- glad to help

niles gravatar imageniles ( 14 years ago )

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 ( 14 years ago )
2

answered 14 years ago

macieksk gravatar image

updated 13 years ago

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.

Preview: (hide)
link
1

answered 14 years ago

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.

Preview: (hide)
link

Comments

Thanks, I'll try this.

Jason Bandlow gravatar imageJason Bandlow ( 14 years ago )
1

answered 14 years ago

kcrisman gravatar image

updated 13 years ago

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
    XSUPPORT=yes

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

else
   if [ "x`uname`" = xSunOS ] && [ -f /usr/X11/lib/libXv.so ] ; then 
       XSUPPORT=yes

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.

Preview: (hide)
link

Comments

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 ( 14 years ago )

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 ( 14 years ago )
0

answered 13 years ago

Volker Braun gravatar image

I just made a new r spkg at http://trac.sagemath.org/sage_trac/ti... which should help with graphics. Please test if you can and leave your feedback on the trac page.

Preview: (hide)
link

Comments

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

kcrisman gravatar imagekcrisman ( 13 years ago )

Your Answer

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

Add Answer

Question Tools

Stats

Asked: 14 years ago

Seen: 6,258 times

Last updated: Nov 19 '11