@@ -177,6 +177,7 @@ def __init__(self, xdata, ydata,
177177 solid_joinstyle = None ,
178178 pickradius = 5 ,
179179 drawstyle = None ,
180+ markevery = None ,
180181 ** kwargs
181182 ):
182183 """
@@ -226,6 +227,7 @@ def __init__(self, xdata, ydata,
226227 self .set_linewidth (linewidth )
227228 self .set_color (color )
228229 self .set_marker (marker )
230+ self .set_markevery (markevery )
229231 self .set_antialiased (antialiased )
230232 self .set_markersize (markersize )
231233 self ._dashSeq = None
@@ -320,6 +322,32 @@ def setpickradius(self,d):
320322 """
321323 self .pickradius = d
322324
325+
326+ def set_markevery (self , every ):
327+ """
328+ Set the markevery property to subsample the plot when using
329+ markers. Eg if ``markevery=5``, every 5-th marker will be
330+ plotted. *every* can be
331+
332+ None
333+ Every point will be plotted
334+
335+ an integer N
336+ Every N-th marker will be plotted starting with marker 0
337+
338+ A length-2 tuple of integers
339+ every=(start, N) will start at point start and plot every N-th marker
340+
341+
342+ ACCEPTS: None | integer | (startind, stride)
343+
344+ """
345+ self ._markevery = every
346+
347+ def get_markevery (self ):
348+ 'return the markevery setting'
349+ return self ._markevery
350+
323351 def set_picker (self ,p ):
324352 """Sets the event picker details for the line.
325353
@@ -472,6 +500,19 @@ def draw(self, renderer):
472500 funcname = self ._markers .get (self ._marker , '_draw_nothing' )
473501 if funcname != '_draw_nothing' :
474502 tpath , affine = self ._transformed_path .get_transformed_points_and_affine ()
503+
504+ # subsample the markers if markevery is not None
505+ markevery = self .get_markevery ()
506+ if markevery is not None :
507+ if iterable (markevery ):
508+ startind , stride = markevery
509+ else :
510+ startind , stride = 0 , markevery
511+ if tpath .codes is not None :
512+ tpath .codes = tpath .codes [startind ::stride ]
513+ tpath .vertices = tpath .vertices [startind ::stride ]
514+
515+
475516 markerFunc = getattr (self , funcname )
476517 markerFunc (renderer , gc , tpath , affine .frozen ())
477518
0 commit comments