1.5.3 中的 API 更改#

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

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

与大多数 Line2D setter 方法不同,set_marker 确实接受 None 作为有效输入,并将其映射为“无标记”。因此,通过将 marker=None 路由到 __init__ 而不是 set(...)ax.plot(..., marker=None) 的含义从“无标记”变为“来自 rcparams 的默认标记”。

此更改仅在 mpl.rcParams['lines.marker'] 的值不是 'None'(这是一个字符串 'None',表示“无标记”)时才明显。