On 08/05/2010 10:54 PM, Jorge Scandaliaris wrote: > Hi, > Looking for a way to analyze a set of images I found waitforbuttonpress, which > basically does what I need: allows me to display a few plots/scatter/etc for > as > long as I need; then when pressing a key move to the next image and redo all > plots/scatter/etc. > Now my problem is that waitforbuttonpress (or the (mis)use I gave it) forces > me > to close the ipython session frequently and start over again. This is at least > inconvenient, and a few times forced me to recalculate things that took some > time (and that I had forgot to save). > I know this might be backend-related. I use GTKAgg, on ubuntu 10.04, mpl-1.0.0 > (locally built). Below you'll find a script I created where I see this > behavior, > the ipython console's output, and the steps I followed. > > Steps followed and description: > 1- Run script, click mouse a few times (plot is closed and redrawn), finally > press a key. The plot is closed, and the console returns to be active. This > corresponds to "In [1]" in the ipython console's output > 2- Trying to run anything at the ipython console results in a looong delay > and a > message like in "In [2]" at the console. The console works fine after this, > though, at least with non matplotlib-related stuff > 3- Running the script again results in the output shown in "In [3]". The > script > seems to runs fine, i.e. clicks cause the redrawing of the plot, though > pressing > any key (which should break the loop and end the script) will end the script > but > won't close the plot windows. The console works mostly ok, the only way to > close > the plot window and ipython is by killing the ipython process. > 4- In some other cases, I ended up with an unresponsive console that required > killing the ipython process as well. > This test case is not comprehensive of the things I've experienced, but it > might > show a possible cause of this behavior.
Jorge, Running mpl from svn, with gtkagg backend, on ubuntu, but with ipython 0.11alpha1, I can't reproduce the problem; your example works for me. I suspect the difference is that ipython 0.11 uses a non-threaded interactive mode, while 0.10 uses the threaded mode. Is updating your ipython an option for you? Eric > > Regards, > > Jorge > > ------------------------ > Ipython console's output: > > In [1]: run doct/intrinsic-images/test_waitforbuttonpress.py > /home/jscandal/lib/python2.6/site-packages/matplotlib/backend_bases.py:2051: > DeprecationWarning: Using default event loop until function specific to this > GUI > is implemented > warnings.warn(str,DeprecationWarning) > > In [2]: run doct/intrinsic-images/test_waitforbuttonpress.py > Warning: Timeout for mainloop thread exceeded > switching to nonthreaded mode (until mainloop wakes up again) > > In [3]: run doct/intrinsic-images/test_waitforbuttonpress.py > --------------------------------------------------------------------------- > ValueError Traceback (most recent call last) > > /usr/lib/pymodules/python2.6/IPython/Shell.pyc in on_timer(self) > 847 > 848 update_tk(self.tk) > --> 849 self.IP.runcode() > 850 time.sleep(0.01) > 851 return True > > /usr/lib/pymodules/python2.6/IPython/Shell.pyc in runcode(self) > 455 # code modifies it, we restore our own handling. > > 456 try: > --> 457 signal(SIGINT,sigint_handler) > 458 except SystemError: > 459 # This happens under Windows, which seems to have all > sorts > > > ValueError: signal only works in main thread > ------------------------- > > script used in the test: > ------------------------ > import numpy as np > import matplotlib as mpl > import matplotlib.pyplot as plt > > data = np.random.rand(10,2) > > while True: > fig, ax = plt.subplots(1,1) > ax.scatter(data.T[0], data.T[1]) > plt.show() > if fig.waitforbuttonpress(timeout=-1): > plt.close('all') > break > plt.close('all') > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by > > Make an app they can't live without > Enter the BlackBerry Developer Challenge > http://p.sf.net/sfu/RIM-dev2dev > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users ------------------------------------------------------------------------------ This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users