Matplotlib 1.0 新特性 (2010年7月6日)#
HTML5/Canvas 后端#
Simon Ratcliffe 和 Ludwig Schwardt 发布了一个适用于 Matplotlib 的 HTML5/Canvas 后端。该后端功能几乎完备,并且他们在将 HTML5 渲染图像与我们的核心渲染器 Agg 进行比较方面做了大量工作。此后端支持在兼容 HTML5 的浏览器中对 Matplotlib 图形进行客户端/服务器交互式导航。
复杂的子图网格布局#
Jae-Joon Lee 编写了 gridspec
,这是一个用于实现复杂子图布局的新模块,支持行和列跨度等功能。请参阅在图形中排列多个坐标轴以获取教程概览。

易于使用的 Pythonic 子图#
Fernando Perez 厌倦了在使用 Matplotlib API 创建图形和多个子图时所需的样板代码,于是编写了一个 subplots()
辅助函数。基本用法允许您创建图形和一个带 NumPy 索引(从 0 开始)的子图数组。例如:
fig, axarr = plt.subplots(2, 2)
axarr[0,0].plot([1,2,3]) # upper, left
有关代码示例,请参阅多个子图。
等高线修复和三角网格图#
Ian Thomas 修复了一个长期存在的错误,这个错误困扰了我们最有才华的开发者多年。contourf()
现在可以处理内部掩码区域,并且线形和填充等高线的边界也一致。
此外,他还贡献了一个新模块 tri
和辅助函数 triplot()
,用于创建和绘制非结构化三角网格。

支持多次调用 show#
长期以来,人们一直要求支持多次调用 show()
。这很困难,因为在不同操作系统、用户界面工具包和版本之间实现一致的行为很不容易。Eric Firing 在统一不同后端 show
的行为方面做了大量工作,其期望的行为是让 show
显示所有新创建的图形并阻塞执行直到它们关闭。重复调用 show
应该显示自上次调用以来新创建的图形。Eric 对他能访问的用户界面工具包、版本和平台进行了大量测试,但不可能测试所有情况,因此请将问题报告给邮件列表和错误跟踪器。
mplot3d 图形可嵌入任意坐标轴#
现在,您可以使用 add_axes
或 add_subplot
的 "projection" 关键字参数,将 mplot3d 图形放置在任意坐标轴位置,从而支持在同一图形中混合 2D 和 3D 图形,以及/或在单个图形中放置多个 3D 图形。感谢 Ben Root。

tick_params#
Eric Firing 编写了 tick_params
,这是一个方便的方法,用于改变刻度线和刻度标签的外观。请参阅 pyplot 函数 tick_params()
和相关的 Axes 方法 tick_params()
。
大量性能和功能增强#
大型图像的放大速度更快,并且能够放大到单个像素
文档的本地安装效果更好
改进了“小部件”——支持鼠标捕获
线条与像素边界的对齐更精确
API 中对颜色,特别是 Alpha 通道,的处理更一致
软件工程大幅改进#
得益于改进的软件工程,Matplotlib 主干代码库状况可能是有史以来最好的。我们现在有一个 buildbot,它在每次 svn 提交时都会运行一套 nose 回归测试,自动生成一组图像并将其与一组已知合格图像进行比较,如果失败则向开发者发送电子邮件,其中包含逐像素的图像比较。发布和发布后的错误修复在分支中进行,允许在主干中进行活跃的新功能开发,同时保持发布分支的稳定。感谢 Andrew Straw、Michael Droettboom 和其他 Matplotlib 开发者为此付出的巨大努力。
Bug 修复马拉松#
Eric Firing 在 Jae-Joon Lee、Michael Droettboom、Christoph Gohlke 和 Michiel de Hoon 的帮助下,进行了一场错误修复和关闭马拉松,在(现已关闭的)SourceForge 错误跟踪器上关闭了 100 多个错误。