From: Andrew S. <str...@as...> - 2008-02-19 06:20:03
|
I just ran into a bug with picking of lines. I changed the line style in figure 1, subplot 1 to 'o-' (from 'o') and ripped out most of everything else in examples/pick_event_demo.py to create pick_event_demo3.py (attached). When I run this and I attempt to click on points, I get Traceback (most recent call last): File "/home/astraw/py2.5-linux-x86_64/lib/python2.5/site-packages/matplotlib/backends/backend_gtk.py", line 193, in button_press_event FigureCanvasBase.button_press_event(self, x, y, event.button) File "/home/astraw/py2.5-linux-x86_64/lib/python2.5/site-packages/matplotlib/backend_bases.py", line 915, in button_press_event self.callbacks.process(s, mouseevent) File "/home/astraw/py2.5-linux-x86_64/lib/python2.5/site-packages/matplotlib/cbook.py", line 157, in process func(*args, **kwargs) File "/home/astraw/py2.5-linux-x86_64/lib/python2.5/site-packages/matplotlib/backend_bases.py", line 849, in pick self.figure.pick(mouseevent) File "/home/astraw/py2.5-linux-x86_64/lib/python2.5/site-packages/matplotlib/artist.py", line 220, in pick for a in self.get_children(): a.pick(mouseevent) File "/home/astraw/py2.5-linux-x86_64/lib/python2.5/site-packages/matplotlib/axes.py", line 2155, in pick martist.Artist.pick(self,args[0]) File "/home/astraw/py2.5-linux-x86_64/lib/python2.5/site-packages/matplotlib/artist.py", line 220, in pick for a in self.get_children(): a.pick(mouseevent) File "/home/astraw/py2.5-linux-x86_64/lib/python2.5/site-packages/matplotlib/artist.py", line 214, in pick inside,prop = self.contains(mouseevent) File "/home/astraw/py2.5-linux-x86_64/lib/python2.5/site-packages/matplotlib/lines.py", line 327, in contains ind = segment_hits(mouseevent.x,mouseevent.y,xt,yt,pixels) File "/home/astraw/py2.5-linux-x86_64/lib/python2.5/site-packages/matplotlib/lines.py", line 100, in segment_hits candidates = candidates & ~point_hits[:-1] & ~point_hits[1:] TypeError: bad operand type for unary ~: 'MaskedArray' Anyhow, I spent a little while tracking this down and came up with the attached patch. I guess there's a more direct solution to the issue that this band-aid, but I hope this will jump-start someone to fix this. In the meantime, this appears to work sufficiently for my purposes... FWIW, my numpy is SVN from 16 december 2007 (after 1.0.4 and thus on the way to 1.0.5) and I'm using the old ma module. BUILDING MATPLOTLIB matplotlib: 0.98pre python: 2.5.1 (r251:54863, Oct 5 2007, 13:50:07) [GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] platform: linux2 REQUIRED DEPENDENCIES numpy: 1.0.5.dev freetype2: 9.16.3 |