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'
,表示“无标记”)时才明显。