Matplotlib 3.2 的新功能 (2020年3月4日)#

要查看自上次修订以来的所有问题和拉取请求列表,请参阅 GitHub 统计数据为 3.9.2 版本(2024年8月12日)

单位转换器识别子类#

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

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"] (default: 0) 设置为 6(而不是 0)。其他值的行为未定义。

(Source code, 2x.png, png)

注意字符之间的间距在它们的边界框之间是均匀的(上图)。通过修正字距(下图),倾斜的字符(例如,AV或VA)将会靠得更近,以及其他各种字符对,这取决于字体支持(例如,T和e,或W后的句号)。

(Source code, 2x.png, png)

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 刻度标记和格式化器的改进#

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

从这一版本开始,logit locator 的行为几乎与用于对数刻度或线性刻度的 locator 相同,具体取决于使用的缩放。刻度的数量是可控的。在对数刻度中,一些较小的标签会作为子标签自适应地显示。格式化适用于概率,精度会根据刻度进行调整。

rcParams 用于轴标题的位置和颜色#

新增了两个 rcParams:rcParams["axes.titlelocation"] (default: 'center') 表示默认的坐标轴标题对齐方式,而 rcParams["axes.titlecolor"] (default: '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 现在接受三维图像(RGB 或 RGBA)数组。