Sullivan
Sullivan

Reputation: 473

pylab matplotlib "show" waits until window closes

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!

Upvotes: 17

Views: 21610

Answers (2)

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.

Upvotes: 5

eudoxos
eudoxos

Reputation: 19075

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.

Upvotes: 26

Related Questions