1.5.3 中的 API 变更#

ax.plot(..., marker=None) 给出默认标记#

在1.5.3之前,传递给 plot 的关键字参数被分为两部分处理——由 plot 内部生成的默认关键字参数(如循环样式)和用户提供的关键字参数。内部生成的关键字参数被传递给 matplotlib.lines.Line2D,而用户的关键字参数则通过 ln.set(**kwargs) 在艺术家创建后进行更新。现在,这两组关键字参数被合并并传递给 Line2D。这一更改是为了允许通过用户关键字参数传递 None 来表示‘执行默认操作’,这是Matplotlib中的惯例,而不是引发异常。

与大多数 Line2D 设置方法不同,set_marker 接受 None 作为有效输入,这被映射为 '无标记'。因此,通过将 marker=None 传递给 __init__ 而不是 set(...)ax.plot(..., marker=None) 的含义从 '无标记' 变为 '来自 rcparams 的默认标记'。

这个变化只有在 mpl.rcParams['lines.marker'] 的值不是 'None' 时才会明显(字符串 'None' 表示 '没有标记')。