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
> ---
> ValueErrorTraceback (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