Matplotlib 3.2 版本的新特性(2020 年 3 月 4 日)#

有关自上次修订以来所有问题和拉取请求的列表,请参阅3.10.0 版本(2024 年 12 月 13 日)的 GitHub 统计信息

单位转换器识别子类#

单位转换器现在还可以处理已注册类的子类的实例。

imsave 接受元数据和 PIL 选项#

imsave 已获得对 metadatapil_kwargs 参数的支持。这些参数的行为与 Figure.savefig() 方法类似。

cbook.normalize_kwargs#

cbook.normalize_kwargs 现在提供了一个方便的接口来标准化艺术家的属性(例如,从“lw”到“linewidth”)

>>> cbook.normalize_kwargs({"lw": 1}, Line2D)
{"linewidth": 1}

第一个参数是要标准化的映射,第二个参数可以是艺术家类或艺术家实例(它也可以是特定格式的映射;有关详细信息,请参阅该函数的文档字符串)。

FontProperties 接受 os.PathLike#

FontPropertiesfname 参数现在可以是 os.PathLike,例如

>>> FontProperties(fname=pathlib.Path("/path/to/font.ttf"))

PDF 后端中的 Gouraud 着色 alpha 通道#

现在,pdf 后端支持 Gouraud 着色的三角形网格中的 alpha 通道。

字距调整现在使用正确的值#

由于应用字距调整的方式存在错误,之前版本的 Matplotlib 会过度校正字距。此版本现在将正确应用字距(对于 FreeType 支持的字体)。要恢复旧的行为(例如,对于测试图像),您可以将 rcParams["text.kerning_factor"] (默认值: 0) 设置为 6(而不是 0)。其他值具有未定义的行为。

(源代码, 2x.png, png)

请注意,字符之间的间距在其边界框之间是均匀的(上图)。使用校正后的字距(下图),倾斜的字符(例如,AV 或 VA)将靠得更近,并且根据字体支持,各种其他字符对(例如,T 和 e,或 W 之后的句点)也将靠得更近。

(源代码, 2x.png, png)

bar3d 光源着色#

shade 参数为 True 时,bar3d() 现在支持来自不同角度的光照,可以使用 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 刻度和格式化程序的改进#

1.5 版本中引入的 logit 刻度没有合适的刻度和格式化程序。以前,刻度的位置与缩放无关,显示了太多标签导致重叠,破坏了可读性,并且标签格式没有适应精度。

从这个版本开始,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)数组。