Matplotlib 1.2 有哪些新功能 (2012年11月9日)#
注意
matplotlib 1.2 支持 Python 2.6, 2.7 和 3.1
Python 3.x 支持#
Matplotlib 1.2 是第一个支持 Python 3.x(具体是 Python 3.1 和 3.2)的版本。为了合理地实现这一点,我们不得不放弃对 Python 2.6 以前版本的支持。
这项工作由 Michael Droettboom、开普敦 Python 用户组以及许多其他人完成,并部分得到了 SAGE 项目的财务支持。
以下 GUI 后端在 Python 3.x 下工作:Gtk3Cairo、Qt4Agg、TkAgg 和 MacOSX。其他 GUI 后端尚未为 Python 3.x 提供足够的绑定,但它们继续在 Python 2.6 和 2.7 上工作,特别是 Qt 和 QtAgg 后端(它们已被弃用)。非 GUI 后端,如 PDF、PS 和 SVG,在 Python 2.x 和 3.x 上均可工作。
依赖于 Python Imaging Library 的功能,例如 JPEG 处理,无法工作,因为 Python 3.x 版本的 PIL 尚未足够成熟。
PGF/TikZ 后端#
Peter Würtz 编写了一个后端,允许 matplotlib 将图形导出为 LaTeX 的绘图命令。这些命令可以使用 PGF/TikZ 宏包通过 PdfLaTeX、XeLaTeX 或 LuaLaTeX 进行处理。用法示例和文档请参见 通过 pgf 后端使用 XeLaTeX/LuaLaTeX 渲染文本。

定位器接口#
Philip Elson 通过一个简单的接口公开了刻度线 Locator 类背后的智能。例如,要获得不超过 5 个合理步长的值,且这些值跨越 10 和 19.5 之间。
>>> import matplotlib.ticker as mticker
>>> locator = mticker.MaxNLocator(nbins=5)
>>> print(locator.tick_values(10, 19.5))
[ 10. 12. 14. 16. 18. 20.]
三维曲面图 (Tri-Surface Plots)#
Damon McDougall 为 mplot3d
工具包添加了一个新的绘图方法,名为 plot_trisurf()
。

控制颜色条扩展部分的长度#
Andrew Dawson 为 colorbar()
添加了一个新的关键字参数 extendfrac,用于控制最小和最大颜色条扩展部分的长度。

图形可序列化 (picklable)#
Philip Elson 添加了一个实验性功能,使图形可序列化,以便快速方便地短期存储绘图。Pickle 文件并非为长期存储而设计,在恢复不同 Matplotlib 版本中保存的 pickle 文件时不受支持,并且在从不可信来源恢复 pickle 文件时存在安全隐患。尽管如此,它们对于在 Matplotlib 内部进行后期修改的短期存储很有用。
在 matplotlibrc 中设置默认边界框#
matplotlibrc 配置文件中新增了两个默认设置:savefig.bbox
,可设置为 'standard' 或 'tight';以及 savefig.pad_inches
,用于控制边界框的填充。
新版箱线图功能#
用户现在可以将自己计算中位数及其置信区间的方法集成到 boxplot
方法中。对于传递给 boxplot 的每一列数据,用户可以指定一个相应的中位数和置信区间。

新版 RC 参数功能#
Matthew Emmett 添加了一个函数和一个上下文管理器来帮助管理 RC 参数:rc_file()
和 rc_context
。要从文件中加载 RC 参数:
>>> mpl.rc_file('mpl.rc')
要临时使用 RC 参数:
>>> with mpl.rc_context(fname='mpl.rc', rc={'text.usetex': True}):
>>> ...
流线图#
Tom Flannaghan 和 Tony Yu 添加了一个新的 streamplot()
函数,用于绘制向量场的流线。这是一个长期以来的需求功能,并且补充了现有的用于绘制向量场的 quiver()
函数。除了简单地绘制向量场的流线外,streamplot()
还允许用户将流线的颜色和/或线宽映射到另一个参数,例如向量场的速度或局部强度。

新版直方图功能#
Nic Eggert 为 hist()
添加了一个新的 stacked 关键字参数,允许使用任何直方图类型创建堆叠直方图。以前,此功能只能通过使用 "barstacked" 直方图类型来实现。现在,当 stacked=True
传递给函数时,任何直方图类型都可以堆叠。"barstacked" 直方图类型保留其以前的功能以实现向后兼容。
更新的内置依赖项#
以下与 Matplotlib 一同发布并可选择安装的依赖项已更新:
tripcolor 图中的面心颜色#
Ian Thomas 扩展了 tripcolor()
,允许为每个三角形面而不是三角剖分中的每个点指定一个颜色值。

带图例的填充等高线图中的图案填充#
Phil Elson 为 contourf()
添加了图案填充支持,并增加了使用图例识别等高线范围的功能。

Matplotlib 1.2 版本中的已知问题#
当使用 Qt4Agg 后端和 IPython 0.11 或更高版本时,保存对话框将不显示。这应在 IPython 的未来版本中修复。