Matplotlib 3.2 新特性 (2020 年 3 月 4 日)#
有关自上次修订以来的所有问题和拉取请求列表,请参阅 GitHub 3.11.0 版本统计信息 (2026年6月11日)。
单位转换器识别子类#
单位转换器现在也能处理它们所注册类的子类实例。
imsave 接受元数据和 PIL 选项#
imsave 增加了对 metadata 和 pil_kwargs 参数的支持。这些参数的行为与 Figure.savefig() 方法类似。
cbook.normalize_kwargs#
cbook.normalize_kwargs 现在提供了一个方便的接口来规范化艺术家(Artist)属性(例如,从 "lw" 到 "linewidth")
>>> cbook.normalize_kwargs({"lw": 1}, Line2D)
{"linewidth": 1}
第一个参数是要规范化的映射,第二个参数可以是艺术家类或艺术家实例(也可以是特定格式的映射;详情请参阅该函数的文档字符串)。
FontProperties 接受 os.PathLike#
FontProperties 的 fname 参数现在可以是 os.PathLike,例如
>>> FontProperties(fname=pathlib.Path("/path/to/font.ttf"))
PDF 后端中的 Gouraud 着色 Alpha 通道#
pdf 后端现在支持 Gouraud 着色三角形网格中的 Alpha 通道。
字距调整现使用正确值#
由于应用字距调整方式的错误,以前版本的 Matplotlib 会对字距调整不足。此版本将正确应用字距调整(针对 FreeType 支持的字体)。要恢复旧行为(例如,为了测试图像),您可以将 text.kerning_factor rcParam 设置为 6(而不是 0)。其他值具有未定义的行为。
通过更正后的字距调整(如下所示),倾斜字符(例如 AV 或 VA)以及其他字符对(具体取决于字体支持,例如 T 和 e,或 W 后面的句点)的间距将更紧密。
bar3d 光源着色#
bar3d() 现在当 shade 参数为 True 时支持来自不同角度的照明,这可以使用 lightsource 参数进行配置。
误差条移位#
此前,errorbar() 接受一个关键字参数 errorevery,使得命令 plt.errorbar(x, y, yerr, errorevery=6) 会在数据点 x[::6], y[::6] 处添加误差条。
errorbar() 现在也接受一个元组作为 errorevery,使得 plt.errorbar(x, y, yerr, errorevery=(start, N)) 在点 x[start::N], y[start::N] 处添加误差条。
Logit 刻度定位器和格式化程序的改进#
Logit 刻度于 1.5 版本引入,但当时没有合适的定位器(ticker)和格式化程序(formatter)。此前,刻度位置不随缩放比例(zoom)变化,显示的标签过多导致重叠,破坏了可读性,且标签格式化未根据精度进行适配。
从本版本开始,logit 定位器的行为几乎与对数刻度或线性刻度的定位器相同,具体取决于所使用的缩放比例。刻度数量得到控制。一些次要标签会根据对数刻度作为子标签自适应显示。格式化已针对概率进行了调整,精度也会根据刻度进行调整。
用于坐标轴标题位置和颜色的 rcParams#
增加了两个新的 rcParams:rcParams["axes.titlelocation"](默认:'center')表示默认的坐标轴标题对齐方式,以及 rcParams["axes.titlecolor"](默认:'auto')表示默认的坐标轴标题颜色。
axes.titlelocation 的有效值为:left(左)、center(中)和 right(右)。axes.titlecolor 的有效值为:auto 或颜色值。将其设置为 auto 将回退到以前的行为,即使用 text.color 中的颜色。
3 位和 4 位十六进制颜色#
颜色现在可以使用 3 位或 4 位十六进制颜色指定,这是通过重复每个字符获得的颜色的简写,例如 #123 等同于 #112233,#123a 等同于 #112233aa。
pcolorfast 中增加了对 RGB(A) 图像的支持#
Axes.pcolorfast 现在接受 3D 图像(RGB 或 RGBA)数组。