@@ -739,16 +739,17 @@ def draw(self, renderer):
739
739
subslice = slice (max (i0 - 1 , 0 ), i1 + 1 )
740
740
self .ind_offset = subslice .start
741
741
self ._transform_path (subslice )
742
-
743
- transf_path = self . _get_transformed_path ()
742
+ else :
743
+ subslice = None
744
744
745
745
if self .get_path_effects ():
746
746
from matplotlib .patheffects import PathEffectRenderer
747
747
renderer = PathEffectRenderer (self .get_path_effects (), renderer )
748
748
749
749
renderer .open_group ('line2d' , self .get_gid ())
750
750
if self ._lineStyles [self ._linestyle ] != '_draw_nothing' :
751
- tpath , affine = transf_path .get_transformed_path_and_affine ()
751
+ tpath , affine = (self ._get_transformed_path ()
752
+ .get_transformed_path_and_affine ())
752
753
if len (tpath .vertices ):
753
754
gc = renderer .new_gc ()
754
755
self ._set_gc_clip (gc )
@@ -796,7 +797,20 @@ def draw(self, renderer):
796
797
gc .set_foreground (ec_rgba , isRGBA = True )
797
798
798
799
marker = self ._marker
799
- tpath , affine = transf_path .get_transformed_points_and_affine ()
800
+
801
+ # Markers *must* be drawn ignoring the drawstyle (but don't pay the
802
+ # recaching if drawstyle is already "default").
803
+ if self .get_drawstyle () != "default" :
804
+ with cbook ._setattr_cm (
805
+ self , _drawstyle = "default" , _transformed_path = None ):
806
+ self .recache ()
807
+ self ._transform_path (subslice )
808
+ tpath , affine = (self ._get_transformed_path ()
809
+ .get_transformed_path_and_affine ())
810
+ else :
811
+ tpath , affine = (self ._get_transformed_path ()
812
+ .get_transformed_path_and_affine ())
813
+
800
814
if len (tpath .vertices ):
801
815
# subsample the markers if markevery is not None
802
816
markevery = self .get_markevery ()
0 commit comments