Ask Your Question
1

Mathematica graphics in a sage notebook - second take

asked 2011-10-22 12:59:45 +0100

enedene gravatar image

updated 2011-10-22 13:06:18 +0100

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.
To quote Simons's answer:
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 flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2011-10-22 22:44:29 +0100

kcrisman gravatar image

updated 2011-10-22 22:44:38 +0100

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.

edit flag offensive delete link more

Comments

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

enedene gravatar imageenedene ( 2011-10-25 12:16:55 +0100 )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?

kcrisman gravatar imagekcrisman ( 2011-10-25 12:18:27 +0100 )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.

enedene gravatar imageenedene ( 2011-10-25 18:45:21 +0100 )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.

kcrisman gravatar imagekcrisman ( 2011-10-26 09:36:04 +0100 )edit

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

enedene gravatar imageenedene ( 2011-10-26 18:42:38 +0100 )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

Stats

Asked: 2011-10-22 12:59:45 +0100

Seen: 817 times

Last updated: Oct 22 '11