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 Imaging Library 的功能,如 JPEG 处理,无法工作,因为适用于 Python 3.x 的 PIL 版本还不够成熟。
PGF/TikZ 后端#
Peter Würtz 编写了一个后端,允许 matplotlib 将图形导出为 LaTeX 的绘图命令。这些可以通过使用 PGF/TikZ 包的 PdfLaTeX、XeLaTeX 或 LuaLaTeX 进行处理。使用示例和文档可以在 通过 pgf 后端使用 XeLaTeX/LuaLaTeX 进行文本渲染 中找到。
定位器接口#
Philip Elson 通过一个简单的接口揭示了刻度定位器类背后的智能。例如,要获得不超过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.]
三表面图#
Damon McDougall 为 mplot3d 工具包添加了一种新的绘图方法,称为 plot_trisurf()。
控制颜色条扩展的长度#
Andrew Dawson 为 colorbar() 添加了一个新的关键字参数 extendfrac,用于控制最小和最大颜色条扩展的长度。
(Source code, 2x.png, png)
图形是可序列化的#
Philip Elson 添加了一个实验性功能,使得图形可以被pickle化,以便快速和轻松地短期存储绘图。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 kwarg,允许使用任何直方图类型创建堆叠直方图。以前,此功能只能通过使用“barstacked”直方图类型来实现。现在,当 stacked=True 传递给函数时,任何直方图类型都可以堆叠。“barstacked”直方图类型保留了其先前的功能,以实现向后兼容。
更新的发货依赖项#
以下与 matplotlib 一起提供并可选择与其一起安装的依赖项已更新:
三色图中面的中心颜色#
Ian Thomas 扩展了 tripcolor() ,使得每个三角形面可以指定一个颜色值,而不是每个三角剖分点。
填充等高线图中的阴影图案,带有图例#
Phil Elson 为 contourf() 添加了阴影支持,并增加了使用图例来识别等高线范围的能力。
matplotlib 1.2 版本中的已知问题#
在使用 IPython 0.11 或更高版本时,如果使用 Qt4Agg 后端,保存对话框将不会显示。这个问题应该会在 IPython 的未来版本中得到修复。