You are reading an old version of the documentation (v3.1.0). For the latest version see
Version 3.1.0
Fork me on GitHub

Table of Contents

Changes in 1.5.3

ax.plot(..., marker=None) gives default marker

Prior to 1.5.3 kwargs passed to plot were handled in two parts -- default kwargs generated internal to plot (such as the cycled styles) and user supplied kwargs. The internally generated kwargs were passed to the matplotlib.lines.Line2D.__init__ and the user kwargs were passed to ln.set(**kwargs) to update the artist after it was created. Now both sets of kwargs are merged and passed to __init__. This change was made to allow None to be passed in via the user kwargs to mean 'do the default thing' as is the convention through out mpl rather than raising an exception.

Unlike most Line2D setter methods set_marker did accept None as a valid input which was mapped to 'no marker'. Thus, by routing this marker=None through __init__ rather than set(...) the meaning of ax.plot(..., marker=None) changed from 'no markers' to 'default markers from rcparams'.

This is change is only evident if mpl.rcParams['lines.marker'] has a value other than 'None' (which is string 'None' which means 'no marker').