On 08:01 pm, h.schaat...@surrey.ac.uk wrote:
Admittedly not the strongest reason, but yet an important one,
for switching from Matlab to python/numpy/scipy/matplotlib,
is that Matlab is very cumbersome to run in batch.

Now I discover that some of the matplotlib.pyplot functions
(incl. plot and contour) insist on opening an X11 window
(just like Matlab does).  I would have preferred just to create
the plot straight on file.  The extra window is a nuisance on my
laptop, it is deep-felt pain if I try to run it remotely.  It fails
completely if I run it without any display at all.

Oddly, the bar() function does not open a window by default.
I was very happy with that.  It works exactly the way I want.
(Why isn't pyplot more consistent?)

Is there something I have missed?  Is it possible to create
standard 2D plots and contour plots without a display, writing
the graphics straight into a PDF file?

It's possible to plot with matplotlib without a display. I'm not surprised you didn't figure out how, though, it's not all that obvious.

Check out the matplotlib.use function.  For example:

   import matplotlib
   matplotlib.use('agg')
   import pylab
   pylab.plot([1, 3, 5])
   fig = file('foo.png', 'wb')
   pylab.savefig(fig, format='png')
   fig.close()

This should work fine without a display.

Jean-Paul
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to