pylab matplotlib "show" waits until window closes


Question

I'd like to have the matplotlib "show" command return to the command line while displaying the plot. Most other plot packages, like R, do this. But pylab hangs until the plot window closes. For example:

import pylab
x = pylab.arange( 0, 10, 0.1)
y = pylab.sin(x)
pylab.plot(x,y, 'ro-')
pylab.show()   #  Python hangs here until the plot window is closed

I'd like to be able to view the plot while doing command line queries. I'm running Debian squeeze with python 2.6.6. My ~/.matplotlib/matplotlibrc contains

backend      : GTKAgg

Thanks!

1
16
3/17/2012 9:29:48 PM

Accepted Answer

Add pylab.ion() (interactive mode) before the pylab.show() call. That will make the UI run in a separate thread and the call to show will return immediately.

23
3/17/2012 10:13:06 PM

You need to run it as

$ ipython --pylab 

and run your code as

In [8]: x = arange(0,10,.1)

In [9]: y = sin(x)

In [10]: plot(x,y,'ro-')

Out[10]: [<matplotlib.lines.Line2D at 0x2f2fd50>]

In [11]: 

This gives you the prompt for cases where you would want to modify other parts or plot more.


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon