# Mathematica graphics in a sage notebook - second take

This question was already asked, but the answer doesn't work for me so I was suggested that I ask it again with the specifics of my problem. So here goes.
In SAGE_ROOT/devel/sage/sage/interfaces/mathematica.py you find the show() function:

def show(self, filename=None, ImageSize=600):
r"""
Show a mathematica expression or plot in the Sage notebook.

EXAMPLES::

sage: P = mathematica('Plot[Sin[x],{x,-2Pi,4Pi}]')   # optional - mathematica
sage: show(P)                                        # optional - mathematica
sage: P.show(ImageSize=800)                          # optional - mathematica
sage: Q = mathematica('Sin[x Cos[y]]/Sqrt[1-x^2]')   # optional - mathematica
sage: show(Q)                                        # optional - mathematica
<html><div class="math">\frac{\sin (x \cos (y))}{\sqrt{1-x^2}}</div></html>
"""


I'm not sure should I use sage input method or mathematica so I'll do both.
sage input method:
For test that MathKernel works:

mathematica('N[Pi,10]')


returns

3.141592654


Now if I try the first example:

P = mathematica('Plot[Sin[x],{x,-2Pi,4Pi}]')
show(P)


I get nothing, it just appears to work (waiting cursor) but no output. By checking the process list on server, MathKernel is shown.

Next I tried mathematica input method:

N[Pi,10]


returns

3.141592654


Test works.

Plot[Sin[x],{x,-2Pi,4Pi}]


returns

-Graphics-


EDIT: Ubuntu Server 10.04 without GUI, Mathematica 8.0, Sage 4.7.1

edit retag close merge delete

Sort by ยป oldest newest most voted

I don't know if this is the answer. But notice in the documentation:

Show a mathematica expression or plot in the Sage notebook.


The code has

        P.chdir(os.path.abspath("."))
s = 'Export["%s", %s, ImageSize->%s]'%(filename, self.name(), ImageSize)
P.eval(s)
P.chdir(orig_dir)


So it's doing the chdir thing inside the notebook in order to make sure the graphics file is found in the right place there, but that won't work with the command line.

You may, though, be able to evaluate a Mma command that just saves the file to some filename. It looks like that Export command might do it, but I don't have Mma, so I couldn't tell. I bet it's worth a shot, though.

more

I would really like to have the output in web interface, otherwise it's more practical to connect to mathematica via shell.

( 2011-10-25 05:16:55 -0500 )edit

And you're saying that this doesn't work in the notebook? I thought you were using command line... maybe there is something weird. Is Mathematica in your path?

( 2011-10-25 05:18:27 -0500 )edit

@kcrisman exactly I'm using web interface notebook, and there I can't get a graphical output. Since sage can find Mathematica to calculate N[Pi,10], it should do so for graphics. And the process can be seen if I connect to server via ssh and run top command.

( 2011-10-25 11:45:21 -0500 )edit

Huh. I'm stumped, but I'm not an expert on this either. If you don't get any more answers here, I'd try sage-support@googlegroups.com, where there are definitely people who use the Mma interface regularly. Sorry I cannot help more.

( 2011-10-26 02:36:04 -0500 )edit

@kcirsman no problem, you tried to help, I respect that.

( 2011-10-26 11:42:38 -0500 )edit