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,Cape Town Python Users' Group 许多其他人完成,并由 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 进行文本渲染 中.

../../_images/pgf_preamble.png

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 Plot(三角剖分曲面图)#

Damon McDougall 为 mplot3d 工具包添加了一个新的绘图方法,称为 plot_trisurf() .

../../_images/sphx_glr_trisurf3d_001.png

控制颜色条扩展的长度#

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

(Source code, png)

图形是可 pickle 的#

Philip Elson 添加了一个实验性功能,使图形可 pickle,以便快速简便地短期存储绘图.Pickle 文件并非设计用于长期存储,当恢复在另一个 matplotlib 版本中保存的 pickle 时不受支持,并且当恢复来自不受信任来源的 pickle 时不安全. 话虽如此,它们对于短期存储以供以后在 matplotlib 中修改非常有用.

在 matplotlibrc 中设置默认边界框#

matplotlibrc 配置文件中提供了两个新的默认值: savefig.bbox ,可以设置为"standard"或"tight",以及 savefig.pad_inches ,用于控制边界框填充.

新的箱线图功能#

用户现在可以将他们自己的计算中位数及其置信区间的方法合并到 boxplot 方法中.对于传递给箱线图的每一列数据,用户可以指定随附的中位数和置信区间.

../../_images/sphx_glr_boxplot_demo_003.png

新的 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() 允许用户将流线的颜色和/或线宽映射到单独的参数,例如矢量场的速度或局部强度.

../../_images/sphx_glr_plot_streamplot_001.png

新的直方图功能#

Nic Eggert 向 hist() 添加了一个新的 stacked kwarg,允许使用任何直方图类型创建堆叠直方图.以前,此功能只能通过使用"barstacked"直方图类型来实现.现在,当 stacked=True 传递给函数时,任何直方图类型都可以堆叠."barstacked"直方图类型保留了其先前的功能以实现向后兼容性.

更新了附带的依赖项#

以下与 matplotlib 一起提供并可以选择安装的依赖项已更新:

  • pytz 2012d

  • dateutil 在 Python 2.x 上为 1.5,

    在 Python 3.x 上为 2.1

tripcolor 图中的面心颜色#

Ian Thomas 扩展了 tripcolor() ,允许为每个三角形面指定一个颜色值,而不是为三角剖分中的每个点指定一个颜色值.

../../_images/sphx_glr_tripcolor_demo_001.png

填充等高线图中的阴影图案,带有图例#

Phil Elson 添加了对 contourf() 的阴影线支持,以及使用图例来识别等高线范围的功能.

../../_images/sphx_glr_contourf_hatching_001.png

matplotlib 1.2 版本中的已知问题#

  • 当将 Qt4Agg 后端与 IPython 0.11 或更高版本一起使用时,将不显示保存对话框.这应该在 IPython 的未来版本中修复.