|
From: Jorge S. <jor...@ya...> - 2010-08-06 08:54:37
|
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.
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')
|
|
From: Eric F. <ef...@ha...> - 2010-08-07 20:35:26
|
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 > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users |
|
From: Jorge S. <jor...@ya...> - 2010-08-07 21:14:23
|
Eric Firing <efiring@...> writes: > 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 > Yes, it is. I'll give it a try. Thanks for the info. Jorge |
|
From: Jorge S. <jor...@ya...> - 2010-08-07 21:45:20
|
Eric Firing <efiring@...> writes: > 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 > Well, I just installed ipython 0.11.alpha1.git and my example doesn't work at all (first plot is displayed, but neither mouse nor key presses have any effect). Could it be that I use mpl.1.0 instead of svn? How do you start ipython? I usually do "ipython -gthread -pylab", but maybe that is also contributing to the problem. Regards, Jorge |
|
From: Eric F. <ef...@ha...> - 2010-08-07 22:00:11
|
On 08/07/2010 11:44 AM, Jorge Scandaliaris wrote: > Eric Firing<efiring@...> writes: >> 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 >> > > Well, I just installed ipython 0.11.alpha1.git and my example doesn't work at > all (first plot is displayed, but neither mouse nor key presses have any > effect). Could it be that I use mpl.1.0 instead of svn? How do you start > ipython? I usually do "ipython -gthread -pylab", but maybe that is also > contributing to the problem. Try "ipython -pylab". We don't want the threaded version. Eric > > Regards, > > Jorge > > > ------------------------------------------------------------------------------ > 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 > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users |
|
From: Jorge S. <jor...@ya...> - 2010-08-08 20:06:42
|
Eric Firing <efiring@...> writes: > Try "ipython -pylab". We don't want the threaded version. > > Eric Well, it seems matplotlib svn is required. I got it working after I upgraded from 1.0 to svn (revision 8624 to be precise) and with Ipython 0.11.alpha1. Thanks for the tip again, I am a happier man now ;) Jorge |