Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit a260058

Browse filesBrowse files
committed
Merge pull request #6497 from anntzer/fix-line2d-contains-drawstyle
FIX: Line2D._path obeys drawstyle.
2 parents 77c23f8 + b8fe72c commit a260058
Copy full SHA for a260058

File tree

Expand file treeCollapse file tree

2 files changed

+12
-43
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+12
-43
lines changed

‎lib/matplotlib/cbook.py

Copy file name to clipboardExpand all lines: lib/matplotlib/cbook.py
+6-4Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2403,12 +2403,14 @@ def pts_to_midstep(x, *args):
24032403
# convert 2D array back to tuple
24042404
return tuple(steps)
24052405

2406-
STEP_LOOKUP_MAP = {'pre': pts_to_prestep,
2406+
STEP_LOOKUP_MAP = {'default': lambda x, y: (x, y),
2407+
'pre': pts_to_prestep,
24072408
'post': pts_to_poststep,
24082409
'mid': pts_to_midstep,
2409-
'step-pre': pts_to_prestep,
2410-
'step-post': pts_to_poststep,
2411-
'step-mid': pts_to_midstep}
2410+
'steps': pts_to_prestep,
2411+
'steps-pre': pts_to_prestep,
2412+
'steps-post': pts_to_poststep,
2413+
'steps-mid': pts_to_midstep}
24122414

24132415

24142416
def index_of(y):

‎lib/matplotlib/lines.py

Copy file name to clipboardExpand all lines: lib/matplotlib/lines.py
+6-39Lines changed: 6 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from . import artist, colors as mcolors
1818
from .artist import Artist
1919
from .cbook import (iterable, is_string_like, is_numlike, ls_mapper_r,
20-
pts_to_prestep, pts_to_poststep, pts_to_midstep)
20+
STEP_LOOKUP_MAP)
2121

2222
from .path import Path
2323
from .transforms import Bbox, TransformedPath, IdentityTransform
@@ -237,6 +237,7 @@ class Line2D(Artist):
237237
'steps': '_draw_steps_pre',
238238
}
239239

240+
# drawStyles should now be deprecated.
240241
drawStyles = {}
241242
drawStyles.update(_drawStyles_l)
242243
drawStyles.update(_drawStyles_s)
@@ -470,8 +471,7 @@ def contains(self, mouseevent):
470471
# application has set the error flags such that an exception is raised
471472
# on overflow, we temporarily set the appropriate error flags here and
472473
# set them back when we are finished.
473-
olderrflags = np.seterr(all='ignore')
474-
try:
474+
with np.errstate(all='ignore'):
475475
# Check for collision
476476
if self._linestyle in ['None', None]:
477477
# If no line, return the nearby point(s)
@@ -480,20 +480,9 @@ def contains(self, mouseevent):
480480
else:
481481
# If line, return the nearby segment(s)
482482
ind = segment_hits(mouseevent.x, mouseevent.y, xt, yt, pixels)
483-
finally:
484-
np.seterr(**olderrflags)
485483

486484
ind += self.ind_offset
487485

488-
# Debugging message
489-
if False and self._label != '':
490-
print("Checking line", self._label,
491-
"at", mouseevent.x, mouseevent.y)
492-
print('xt', xt)
493-
print('yt', yt)
494-
#print 'dx,dy', (xt-mouseevent.x)**2., (yt-mouseevent.y)**2.
495-
print('ind', ind)
496-
497486
# Return the point(s) within radius
498487
return len(ind) > 0, dict(ind=ind)
499488

@@ -691,7 +680,8 @@ def recache(self, always=False):
691680
interpolation_steps = self._path._interpolation_steps
692681
else:
693682
interpolation_steps = 1
694-
self._path = Path(self._xy, None, interpolation_steps)
683+
xy = STEP_LOOKUP_MAP[self._drawstyle](*self._xy.T)
684+
self._path = Path(np.asarray(xy).T, None, interpolation_steps)
695685
self._transformed_path = None
696686
self._invalidx = False
697687
self._invalidy = False
@@ -764,8 +754,6 @@ def draw(self, renderer):
764754
tpath, affine = transf_path.get_transformed_path_and_affine()
765755
if len(tpath.vertices):
766756
self._lineFunc = getattr(self, funcname)
767-
funcname = self.drawStyles.get(self._drawstyle, '_draw_lines')
768-
drawFunc = getattr(self, funcname)
769757
gc = renderer.new_gc()
770758
self._set_gc_clip(gc)
771759

@@ -788,7 +776,7 @@ def draw(self, renderer):
788776
if self.get_sketch_params() is not None:
789777
gc.set_sketch_params(*self.get_sketch_params())
790778

791-
drawFunc(renderer, gc, tpath, affine.frozen())
779+
self._draw_lines(renderer, gc, tpath, affine.frozen())
792780
gc.restore()
793781

794782
if self._marker and self._markersize > 0:
@@ -1234,27 +1222,6 @@ def set_dashes(self, seq):
12341222
def _draw_lines(self, renderer, gc, path, trans):
12351223
self._lineFunc(renderer, gc, path, trans)
12361224

1237-
def _draw_steps_pre(self, renderer, gc, path, trans):
1238-
steps = np.vstack(pts_to_prestep(*self._xy.T)).T
1239-
1240-
path = Path(steps)
1241-
path = path.transformed(self.get_transform())
1242-
self._lineFunc(renderer, gc, path, IdentityTransform())
1243-
1244-
def _draw_steps_post(self, renderer, gc, path, trans):
1245-
steps = np.vstack(pts_to_poststep(*self._xy.T)).T
1246-
1247-
path = Path(steps)
1248-
path = path.transformed(self.get_transform())
1249-
self._lineFunc(renderer, gc, path, IdentityTransform())
1250-
1251-
def _draw_steps_mid(self, renderer, gc, path, trans):
1252-
steps = np.vstack(pts_to_midstep(*self._xy.T)).T
1253-
1254-
path = Path(steps)
1255-
path = path.transformed(self.get_transform())
1256-
self._lineFunc(renderer, gc, path, IdentityTransform())
1257-
12581225
def _draw_solid(self, renderer, gc, path, trans):
12591226
gc.set_linestyle('solid')
12601227
renderer.draw_path(gc, path, trans)

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.