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)的版本。为了以合理的方式实现这一目标,我们不得不放弃对 2.6 以前 Python 版本的支持。
这项工作由 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 图像库(PIL)的功能(如 JPEG 处理)无法工作,因为 Python 3.x 版本的 PIL 尚不成熟。
PGF/TikZ 后端#
Peter Würtz 编写了一个后端,允许 matplotlib 将图形导出为 LaTeX 的绘图命令。这些命令可以通过 PGF/TikZ 软件包由 PdfLaTeX、XeLaTeX 或 LuaLaTeX 进行处理。用法示例和文档可在 通过 pgf 后端使用 XeLaTeX/LuaLaTeX 进行文本渲染 中找到。
定位器(Locator)接口#
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()。
控制颜色条(colorbar)扩展的长度#
Andrew Dawson 为 colorbar() 添加了一个新的关键字参数 extendfrac,用于控制颜色条最小值和最大值扩展部分的长度。
Figure 对象可进行 Pickle 序列化#
Philip Elson 增加了一项实验性功能,使图形对象可以被 Pickle 序列化,以便于快速、简单地进行绘图的短期存储。Pickle 文件并非为长期存储设计,不支持在不同 matplotlib 版本间恢复,且从不受信任的来源恢复 pickle 文件存在安全风险。尽管如此,它们对于在 matplotlib 内部进行后续修改的短期存储非常有用。
在 matplotlibrc 中设置默认边框(bounding box)#
matplotlibrc 配置文件中提供了两个新默认项:savefig.bbox(可设置为 'standard' 或 'tight')和 savefig.pad_inches(用于控制边框填充)。
新的箱线图(Boxplot)功能#
用户现在可以将自定义的计算中位数及其置信区间的方法合并到 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}):
>>> ...
流线图 (Streamplot)#
Tom Flannaghan 和 Tony Yu 添加了一个新的 streamplot() 函数来绘制向量场的流线。这是一个长期被需求的功能,补充了现有的用于绘制向量场的 quiver() 函数。除了绘制流线外,streamplot() 还允许用户将流线的颜色和/或线宽映射到单独的参数,例如向量场的速度或局部强度。
新的直方图(hist)功能#
Nic Eggert 为 hist() 添加了一个新的 stacked 关键字参数,允许使用任何直方图类型创建堆叠直方图。此前,此功能仅在使用 "barstacked" 直方图类型时才可用。现在,当函数被传入 stacked=True 时,任何类型的直方图都可以进行堆叠。"barstacked" 直方图类型保留了其先前的功能以保持向后兼容性。
更新了内置依赖库#
以下随 matplotlib 一起发布并可选择性安装的依赖项已更新:
tripcolor 图中的面中心颜色#
Ian Thomas 扩展了 tripcolor(),允许为每个三角形的面指定一个颜色值,而不是为三角剖分中的每个点指定。
填充等高线图中的填充图案,支持图例#
Phil Elson 为 contourf() 添加了填充图案(hatching)支持,并增加了使用图例标识等高线范围的功能。
Matplotlib 1.2 版本中的已知问题#
当在 IPython 0.11 或更高版本中使用 Qt4Agg 后端时,保存对话框将无法显示。这应该会在未来的 IPython 版本中修复。