API Changes in 1.5.3#

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

Prior to 1.5.3 keyword arguments passed to plot were handled in two parts -- default keyword arguments generated internal to plot (such as the cycled styles) and user supplied keyword arguments. The internally generated keyword arguments were passed to the matplotlib.lines.Line2D and the user keyword arguments were passed to ln.set(**kwargs) to update the artist after it was created. Now both sets of keyword arguments are merged and passed to Line2D. This change was made to allow None to be passed in via the user keyword arguments to mean 'do the default thing' as is the convention through out Matplotlib 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').