You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(115) |
Aug
(120) |
Sep
(137) |
Oct
(170) |
Nov
(461) |
Dec
(263) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(120) |
Feb
(74) |
Mar
(35) |
Apr
(74) |
May
(245) |
Jun
(356) |
Jul
(240) |
Aug
(115) |
Sep
(78) |
Oct
(225) |
Nov
(98) |
Dec
(271) |
2009 |
Jan
(132) |
Feb
(84) |
Mar
(74) |
Apr
(56) |
May
(90) |
Jun
(79) |
Jul
(83) |
Aug
(296) |
Sep
(214) |
Oct
(76) |
Nov
(82) |
Dec
(66) |
2010 |
Jan
(46) |
Feb
(58) |
Mar
(51) |
Apr
(77) |
May
(58) |
Jun
(126) |
Jul
(128) |
Aug
(64) |
Sep
(50) |
Oct
(44) |
Nov
(48) |
Dec
(54) |
2011 |
Jan
(68) |
Feb
(52) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
1
(3) |
2
(2) |
3
(5) |
4
(1) |
5
|
6
|
7
(6) |
8
(3) |
9
(7) |
10
(6) |
11
(14) |
12
(6) |
13
(10) |
14
(6) |
15
|
16
|
17
(15) |
18
(6) |
19
(1) |
20
(4) |
21
(8) |
22
(9) |
23
(12) |
24
(35) |
25
(21) |
26
(14) |
27
(11) |
28
(9) |
29
(11) |
30
(6) |
31
(9) |
|
|
Revision: 5791 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5791&view=rev Author: astraw Date: 2008年07月18日 23:15:37 +0000 (2008年7月18日) Log Message: ----------- Check for nan and inf in axes.delete_masked_points(). Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/axes.py Added Paths: ----------- trunk/matplotlib/unit/axes_unit.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008年07月18日 20:43:58 UTC (rev 5790) +++ trunk/matplotlib/CHANGELOG 2008年07月18日 23:15:37 UTC (rev 5791) @@ -1,3 +1,6 @@ +2008年07月18日 Check for nan and inf in axes.delete_masked_points(). + This should help hexbin and scatter deal with nans. - ADS + 2008年07月17日 Added ability to manually select contour label locations. Also added a waitforbuttonpress function. - DMK Modified: trunk/matplotlib/lib/matplotlib/axes.py =================================================================== --- trunk/matplotlib/lib/matplotlib/axes.py 2008年07月18日 20:43:58 UTC (rev 5790) +++ trunk/matplotlib/lib/matplotlib/axes.py 2008年07月18日 23:15:37 UTC (rev 5791) @@ -1,5 +1,5 @@ from __future__ import division, generators -import math, sys, warnings, datetime, new +import math, sys, warnings, datetime, new, types import numpy as np from numpy import ma @@ -36,6 +36,8 @@ Find all masked points in a set of arguments, and return the arguments with only the unmasked points remaining. + This will also delete any points that are not finite (nan or inf). + The overall mask is calculated from any masks that are present. If a mask is found, any argument that does not have the same dimensions is left unchanged; therefore the argument list may @@ -49,9 +51,11 @@ useful. """ masks = [ma.getmaskarray(x) for x in args if hasattr(x, 'mask')] + isfinite = [np.isfinite(x) for x in args] + masks.extend( [~x for x in isfinite if not isinstance(x,types.NotImplementedType)] ) if len(masks) == 0: return args - mask = reduce(ma.mask_or, masks) + mask = reduce(np.logical_or, masks) margs = [] for x in args: if (not is_string_like(x) Added: trunk/matplotlib/unit/axes_unit.py =================================================================== --- trunk/matplotlib/unit/axes_unit.py (rev 0) +++ trunk/matplotlib/unit/axes_unit.py 2008年07月18日 23:15:37 UTC (rev 5791) @@ -0,0 +1,62 @@ +import unittest +import numpy as np +import matplotlib.axes as axes + +class TestAxes(unittest.TestCase): + def test_delete_masked_points_arrays(self): + input = ( [1,2,3,np.nan,5], + np.array((1,2,3,4,5)), + ) + expected = [np.array((1,2,3,5))]*2 + actual = axes.delete_masked_points(*input) + assert np.allclose(actual, expected) + + input = ( np.ma.array( [1,2,3,4,5], mask=[False,False,False,True,False] ), + np.array((1,2,3,4,5)), + ) + expected = [np.array((1,2,3,5))]*2 + actual = axes.delete_masked_points(*input) + assert np.allclose(actual, expected) + + input = ( [1,2,3,np.nan,5], + np.ma.array( [1,2,3,4,5], mask=[False,False,False,True,False] ), + np.array((1,2,3,4,5)), + ) + expected = [np.array((1,2,3,5))]*3 + actual = axes.delete_masked_points(*input) + assert np.allclose(actual, expected) + + input = () + expected = () + actual = axes.delete_masked_points(*input) + assert np.allclose(actual, expected) + + + input = ( [1,2,3,np.nan,5], + ) + expected = [np.array((1,2,3,5))]*1 + actual = axes.delete_masked_points(*input) + assert np.allclose(actual, expected) + + input = ( np.array((1,2,3,4,5)), + ) + expected = [np.array((1,2,3,4,5))]*1 + actual = axes.delete_masked_points(*input) + assert np.allclose(actual, expected) + + def test_delete_masked_points_strings(self): + input = ( 'hello', + ) + expected = ('hello',) + actual = axes.delete_masked_points(*input) + assert actual == expected + + input = ( u'hello', + ) + expected = (u'hello',) + actual = axes.delete_masked_points(*input) + assert actual == expected + + +if __name__=='__main__': + unittest.main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5790 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5790&view=rev Author: jdh2358 Date: 2008年07月18日 20:43:58 +0000 (2008年7月18日) Log Message: ----------- restored gtk quit on window close Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py Modified: trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py 2008年07月18日 18:59:57 UTC (rev 5789) +++ trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py 2008年07月18日 20:43:58 UTC (rev 5790) @@ -459,9 +459,9 @@ if Gcf.get_num_fig_managers()==0 and \ not matplotlib.is_interactive() and \ gtk.main_level() >= 1: - #gtk.main_quit() - pass + gtk.main_quit() + def show(self): # show the figure window self.window.show() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5789 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5789&view=rev Author: dmkaplan Date: 2008年07月18日 18:59:57 +0000 (2008年7月18日) Log Message: ----------- Fixing bug in is_sequence_of_strings. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/cbook.py Modified: trunk/matplotlib/lib/matplotlib/cbook.py =================================================================== --- trunk/matplotlib/lib/matplotlib/cbook.py 2008年07月18日 14:49:09 UTC (rev 5788) +++ trunk/matplotlib/lib/matplotlib/cbook.py 2008年07月18日 18:59:57 UTC (rev 5789) @@ -275,6 +275,7 @@ Returns true if *obj* is iterable and contains strings """ if not iterable(obj): return False + if is_string_like(obj): return False for o in obj: if not is_string_like(o): return False return True This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5788 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5788&view=rev Author: jdh2358 Date: 2008年07月18日 14:49:09 +0000 (2008年7月18日) Log Message: ----------- Merged revisions 5787 via svnmerge from https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_91_maint ........ r5787 | jdh2358 | 2008年07月18日 09:46:32 -0500 (2008年7月18日) | 1 line added Tuukka's YAArrow fix for horiz and vertical lines ........ Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/patches.py Property Changed: ---------------- trunk/matplotlib/ Property changes on: trunk/matplotlib ___________________________________________________________________ Modified: svnmerge-integrated - /branches/v0_91_maint:1-5771 + /branches/v0_91_maint:1-5787 Modified: trunk/matplotlib/lib/matplotlib/patches.py =================================================================== --- trunk/matplotlib/lib/matplotlib/patches.py 2008年07月18日 14:46:32 UTC (rev 5787) +++ trunk/matplotlib/lib/matplotlib/patches.py 2008年07月18日 14:49:09 UTC (rev 5788) @@ -858,6 +858,12 @@ *y2*) of the returned points is *k*. """ x1,y1,x2,y2,k = map(float, (x1,y1,x2,y2,k)) + + if y2-y1 == 0: + return x2, y2+k, x2, y2-k + elif x2-x1 == 0: + return x2+k, y2, x2-k, y2 + m = (y2-y1)/(x2-x1) pm = -1./m a = 1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5787 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5787&view=rev Author: jdh2358 Date: 2008年07月18日 14:46:32 +0000 (2008年7月18日) Log Message: ----------- added Tuukka's YAArrow fix for horiz and vertical lines Modified Paths: -------------- branches/v0_91_maint/lib/matplotlib/patches.py Modified: branches/v0_91_maint/lib/matplotlib/patches.py =================================================================== --- branches/v0_91_maint/lib/matplotlib/patches.py 2008年07月18日 08:43:03 UTC (rev 5786) +++ branches/v0_91_maint/lib/matplotlib/patches.py 2008年07月18日 14:46:32 UTC (rev 5787) @@ -712,6 +712,12 @@ and the distance from x2,y2 ot the returned points is k """ x1,y1,x2,y2,k = map(float, (x1,y1,x2,y2,k)) + + if y2-y1 == 0: + return x2, y2+k, x2, y2-k + elif x2-x1 == 0: + return x2+k, y2, x2-k, y2 + m = (y2-y1)/(x2-x1) pm = -1./m a = 1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5786 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5786&view=rev Author: dmkaplan Date: 2008年07月18日 08:43:03 +0000 (2008年7月18日) Log Message: ----------- Making a number of changes related to "blocking" stuff: 1) Adding to cbook.py a method is_sequence_of_strings that is then used in BlockingInput to test for a tuple-like sequence of event names 2) Modified the use of *fmt* in clabel so that it an also be a dictionary matching contour levels to arbitrary strings. 3) Removing the extraneous np.array or np.asarray commands in ContourLabeler as they were forcing linecontour to array, but linecontour should already be an array. 4) In blocking_input.py replacing all print commands with calls to matplotlib.verbose.report 5) Removing extra cleanup call from BlockingInput as finally is always executed, regardless of exception status. 6) Removing what appears to be a "patch" command screwup - there were two versions of several of the Blocking* classes in blocking_input.py Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/blocking_input.py trunk/matplotlib/lib/matplotlib/cbook.py trunk/matplotlib/lib/matplotlib/contour.py trunk/matplotlib/lib/matplotlib/figure.py Modified: trunk/matplotlib/lib/matplotlib/blocking_input.py =================================================================== --- trunk/matplotlib/lib/matplotlib/blocking_input.py 2008年07月17日 21:06:17 UTC (rev 5785) +++ trunk/matplotlib/lib/matplotlib/blocking_input.py 2008年07月18日 08:43:03 UTC (rev 5786) @@ -19,7 +19,8 @@ import time import numpy as np -import matplotlib.path as path +from matplotlib import path, verbose +from cbook import is_sequence_of_strings class BlockingInput(object): """ @@ -28,7 +29,7 @@ """ def __init__(self, fig, eventslist=()): self.fig = fig - assert isinstance(eventslist, tuple), "Requires a tuple of event name strings" + assert is_sequence_of_strings(eventslist), "Requires a sequence of event name strings" self.eventslist = eventslist def on_event(self, event): @@ -41,8 +42,7 @@ # subclasses self.add_event(event) - if self.verbose: - print "Event %i" % len(self.events) + verbose.report("Event %i" % len(self.events)) # This will extract info from events self.post_event() @@ -80,7 +80,7 @@ self.pop_event(index) pop.__doc__=pop_event.__doc__ - def __call__(self, n=1, timeout=30, verbose=False ): + def __call__(self, n=1, timeout=30 ): """ Blocking call to retrieve n events """ @@ -90,7 +90,6 @@ self.events = [] self.done = False - self.verbose = verbose self.callbacks = [] # Ensure that the figure is shown @@ -112,12 +111,10 @@ if timeout > 0 and counter > timeout/0.01: print "Timeout reached"; break; - finally: # Activated on exception like ctrl-c + finally: # Run even on exception like ctrl-c + # Disconnect the callbacks self.cleanup() - # Disconnect the callbacks - self.cleanup() - # Return the events in this case return self.events @@ -196,10 +193,10 @@ This add the coordinates of an event to the list of clicks """ self.clicks.append((event.xdata,event.ydata)) - if self.verbose: - print "input %i: %f,%f" % (len(self.clicks), - event.xdata, event.ydata) + verbose.report("input %i: %f,%f" % + (len(self.clicks),event.xdata, event.ydata)) + # If desired plot up click if self.show_clicks: self.marks.extend( @@ -238,7 +235,7 @@ # Call base class to remove callbacks BlockingInput.cleanup(self) - def __call__(self, n=1, timeout=30, verbose=False, show_clicks=True): + def __call__(self, n=1, timeout=30, show_clicks=True): """ Blocking call to retrieve n coordinate pairs through mouse clicks. @@ -246,7 +243,7 @@ self.show_clicks = show_clicks self.clicks = [] self.marks = [] - BlockingInput.__call__(self,n=n,timeout=timeout,verbose=verbose) + BlockingInput.__call__(self,n=n,timeout=timeout) return self.clicks @@ -324,7 +321,7 @@ def __call__(self,inline,n=-1,timeout=-1): self.inline=inline - BlockingMouseInput.__call__(self,n=n,timeout=timeout,verbose=False, + BlockingMouseInput.__call__(self,n=n,timeout=timeout, show_clicks=False) class BlockingKeyMouseInput(BlockingInput): @@ -343,198 +340,13 @@ self.keyormouse = self.events[-1].name == 'key_press_event' - def __call__(self, timeout=30, verbose=False): + def __call__(self, timeout=30): """ Blocking call to retrieve a single mouse or key click Returns True if key click, False if mouse, or None if timeout """ self.keyormouse = None - BlockingInput.__call__(self,n=1,timeout=timeout,verbose=verbose) + BlockingInput.__call__(self,n=1,timeout=timeout) return self.keyormouse -""" -This provides several classes used for interaction with figure windows: - -:class:`BlockingInput` - creates a callable object to retrieve events in a blocking way for interactive sessions - -:class:`BlockingKeyMouseInput` - creates a callable object to retrieve key or mouse clicks in a blocking way for interactive sessions. - Note: Subclass of BlockingInput. Used by waitforbuttonpress - -:class:`BlockingMouseInput` - creates a callable object to retrieve mouse clicks in a blocking way for interactive sessions. - Note: Subclass of BlockingInput. Used by ginput -""" - -import time - -class BlockingInput(object): - """ - Class that creates a callable object to retrieve events in a - blocking way. - """ - def __init__(self, fig, eventslist=()): - self.fig = fig - assert isinstance(eventslist, tuple), \ - "Requires a tuple of event name strings" - self.eventslist = eventslist - - def on_event(self, event): - """ - Event handler that will be passed to the current figure to - retrieve events. - """ - self.events.append(event) - - if self.verbose: - print "Event %i" % len(self.events) - - # This will extract info from events - self.post_event() - - if len(self.events) >= self.n and self.n > 0: - self.done = True - - def post_event(self): - """For baseclass, do nothing but collect events""" - pass - - def cleanup(self): - """Remove callbacks""" - for cb in self.callbacks: - self.fig.canvas.mpl_disconnect(cb) - - self.callbacks=[] - - def __call__(self, n=1, timeout=30, verbose=False ): - """ - Blocking call to retrieve n events - """ - - assert isinstance(n, int), "Requires an integer argument" - self.n = n - - self.events = [] - self.done = False - self.verbose = verbose - self.callbacks = [] - - # Ensure that the figure is shown - self.fig.show() - - # connect the events to the on_event function call - for n in self.eventslist: - self.callbacks.append( self.fig.canvas.mpl_connect(n, self.on_event) ) - - try: - # wait for n clicks - counter = 0 - while not self.done: - self.fig.canvas.flush_events() - time.sleep(0.01) - - # check for a timeout - counter += 1 - if timeout > 0 and counter > timeout/0.01: - print "Timeout reached"; - break; - finally: # Activated on exception like ctrl-c - self.cleanup() - - # Disconnect the callbacks - self.cleanup() - - # Return the events in this case - return self.events - -class BlockingMouseInput(BlockingInput): - """ - Class that creates a callable object to retrieve mouse clicks in a - blocking way. - """ - def __init__(self, fig): - BlockingInput.__init__(self, fig=fig, eventslist=('button_press_event',) ) - - def post_event(self): - """ - This will be called to process events - """ - assert len(self.events)>0, "No events yet" - - event = self.events[-1] - - if event.button == 3: - # If it's a right click, pop the last coordinates. - if len(self.clicks) > 0: - self.clicks.pop() - del self.events[-2:] # Remove button=3 event and previous event - - if self.show_clicks: - mark = self.marks.pop() - mark.remove() - self.fig.canvas.draw() - elif event.button == 2 and self.n < 0: - # If it's a middle click, and we are in infinite mode, finish - self.done = True - elif event.inaxes: - # If it's a valid click, append the coordinates to the list - self.clicks.append((event.xdata, event.ydata)) - if self.verbose: - print "input %i: %f,%f" % (len(self.clicks), - event.xdata, event.ydata) - if self.show_clicks: - self.marks.extend( - event.inaxes.plot([event.xdata,], [event.ydata,], 'r+') ) - self.fig.canvas.draw() - - def cleanup(self): - # clean the figure - if self.show_clicks: - for mark in self.marks: - mark.remove() - self.marks = [] - self.fig.canvas.draw() - - # Call base class to remove callbacks - BlockingInput.cleanup(self) - - def __call__(self, n=1, timeout=30, verbose=False, show_clicks=True): - """ - Blocking call to retrieve n coordinate pairs through mouse - clicks. - """ - self.show_clicks = show_clicks - self.clicks = [] - self.marks = [] - BlockingInput.__call__(self,n=n,timeout=timeout,verbose=verbose) - - return self.clicks - -class BlockingKeyMouseInput(BlockingInput): - """ - Class that creates a callable object to retrieve a single mouse or - keyboard click - """ - def __init__(self, fig): - BlockingInput.__init__(self, fig=fig, eventslist=('button_press_event','key_press_event') ) - - def post_event(self): - """ - Determines if it is a key event - """ - assert len(self.events)>0, "No events yet" - - self.keyormouse = self.events[-1].name == 'key_press_event' - - def __call__(self, timeout=30, verbose=False): - """ - Blocking call to retrieve a single mouse or key click - Returns True if key click, False if mouse, or None if timeout - """ - self.keyormouse = None - BlockingInput.__call__(self,n=1,timeout=timeout,verbose=verbose) - - return self.keyormouse - Modified: trunk/matplotlib/lib/matplotlib/cbook.py =================================================================== --- trunk/matplotlib/lib/matplotlib/cbook.py 2008年07月17日 21:06:17 UTC (rev 5785) +++ trunk/matplotlib/lib/matplotlib/cbook.py 2008年07月18日 08:43:03 UTC (rev 5786) @@ -270,6 +270,15 @@ except (TypeError, ValueError): return 0 return 1 +def is_sequence_of_strings(obj): + """ + Returns true if *obj* is iterable and contains strings + """ + if not iterable(obj): return False + for o in obj: + if not is_string_like(o): return False + return True + def is_writable_file_like(obj): 'return true if *obj* looks like a file object with a *write* method' return hasattr(obj, 'write') and callable(obj.write) Modified: trunk/matplotlib/lib/matplotlib/contour.py =================================================================== --- trunk/matplotlib/lib/matplotlib/contour.py 2008年07月17日 21:06:17 UTC (rev 5785) +++ trunk/matplotlib/lib/matplotlib/contour.py 2008年07月18日 08:43:03 UTC (rev 5786) @@ -71,6 +71,9 @@ *fmt*: a format string for the label. Default is '%1.3f' + Alternatively, this can be a dictionary matching contour + levels with arbitrary strings to use for each contour level + (i.e., fmt[level]=string) *manual*: if *True*, contour labels will be placed manually using @@ -158,10 +161,10 @@ if lcsize > 10 * labelwidth: return 1 - xmax = np.amax(np.array(linecontour)[:,0]) - xmin = np.amin(np.array(linecontour)[:,0]) - ymax = np.amax(np.array(linecontour)[:,1]) - ymin = np.amin(np.array(linecontour)[:,1]) + xmax = np.amax(linecontour[:,0]) + xmin = np.amin(linecontour[:,0]) + ymax = np.amax(linecontour[:,1]) + ymin = np.amin(linecontour[:,1]) lw = labelwidth if (xmax - xmin) > 1.2* lw or (ymax - ymin) > 1.2 * lw: @@ -210,7 +213,7 @@ if cbook.is_string_like(lev): lw = (len(lev)) * fsize else: - lw = (len(fmt%lev)) * fsize + lw = (len(self.get_text(lev,fmt))) * fsize return lw @@ -227,9 +230,11 @@ if cbook.is_string_like(lev): return lev else: - return fmt%lev + if isinstance(fmt,dict): + return fmt[lev] + else: + return fmt%lev - def break_linecontour(self, linecontour, rot, labelwidth, ind): "break a contour in two contours at the location of the label" lcsize = len(linecontour) @@ -243,8 +248,8 @@ slc = trans.transform(linecontour) x,y = slc[ind] - xx= np.asarray(slc)[:,0].copy() - yy=np.asarray(slc)[:,1].copy() + xx=slc[:,0].copy() + yy=slc[:,1].copy() #indices which are under the label inds, = np.nonzero(((xx < x+xlabel) & (xx > x-xlabel)) & @@ -325,8 +330,8 @@ else: ysize = labelwidth - XX = np.resize(np.asarray(linecontour)[:,0],(xsize, ysize)) - YY = np.resize(np.asarray(linecontour)[:,1],(xsize, ysize)) + XX = np.resize(linecontour[:,0],(xsize, ysize)) + YY = np.resize(linecontour[:,1],(xsize, ysize)) #I might have fouled up the following: yfirst = YY[:,0].reshape(xsize, 1) ylast = YY[:,-1].reshape(xsize, 1) Modified: trunk/matplotlib/lib/matplotlib/figure.py =================================================================== --- trunk/matplotlib/lib/matplotlib/figure.py 2008年07月17日 21:06:17 UTC (rev 5785) +++ trunk/matplotlib/lib/matplotlib/figure.py 2008年07月18日 08:43:03 UTC (rev 5786) @@ -1017,11 +1017,11 @@ ax.update_params() ax.set_position(ax.figbox) - def ginput(self, n=1, timeout=30, verbose=False, show_clicks=True): + def ginput(self, n=1, timeout=30, show_clicks=True): """ call signature:: - ginput(self, n=1, timeout=30, verbose=False, show_clicks=True) + ginput(self, n=1, timeout=30, show_clicks=True) Blocking call to interact with the figure. @@ -1038,7 +1038,7 @@ blocking_mouse_input = BlockingMouseInput(self) return blocking_mouse_input(n=n, timeout=timeout, - verbose=verbose, show_clicks=show_clicks) + show_clicks=show_clicks) def waitforbuttonpress(self, timeout=-1): """ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.