Matplotlib 1.1 (2011 年 11 月 2 日) 的新特性#

注意

matplotlib 1.1 支持 Python 2.4 至 2.7

桑基图#

Kevin Davies 将 Yannick Copin 的原始桑基图示例扩展为一个模块 (sankey),并提供了新的示例 (桑基图类使用桑基图的长链连接朗肯循环)。

../../_images/sphx_glr_sankey_rankine_001.png

动画#

Ryan May 编写了一个独立于后端的框架,用于创建动画图形。animation 模块旨在取代以前位于 示例 列表中的特定于后端的示例。使用新框架的示例位于 动画 中;请查看迷人的 <gallery/animation/double_pendulum_sgskip.py>,它使用 matplotlib.animation.Animation.save() 来创建下面的影片。

这应该被视为该框架的测试版;请尝试并提供反馈。

紧凑布局#

matplotlib 用户经常提出的一个问题是缺乏布局引擎来很好地间隔绘图元素。尽管 matplotlib 仍然坚持让用户完全控制绘图元素放置位置的理念,但 Jae-Joon Lee 创建了 matplotlib.tight_layout 模块,并引入了一个新命令 tight_layout() 来解决最常见的布局问题。

(源代码, 2x.png, png)

(2x.png, png)

此功能的用法可以像这样简单:

plt.tight_layout()

它会调整子图之间的间距,以避免轴标签与相邻子图重叠。我们创建了一个紧凑布局指南,展示如何使用这个新工具。

PyQT4、PySide和IPython#

Gerald Storer 使 Qt4 后端与 PySide 以及 PyQT4 兼容。然而,目前 PySide 不支持 PyOS_InputHook 机制,该机制用于在等待文本输入时处理 GUI 事件,因此它不能与新版本 0.11 的 IPython 一起使用。在 PySide 中出现此功能之前,IPython 用户应使用 QT4 的 PyQT4 封装,它仍然是 matplotlib 的默认设置。

添加了一个 rcParam 条目 "backend.qt4",允许用户选择 PyQt4、PyQt4v2 或 PySide。后两者使用 Version 2 Qt API。在大多数情况下,用户可以忽略此 rcParam 变量;它可用于帮助测试,并为在 PyQt4 或 PySide 应用程序中嵌入 matplotlib 的用户提供控制。

图例#

Jae-Joon Lee 改进了绘图图例。首先,现在可以正确显示复杂绘图(例如 stem() 绘图)的图例。其次,在存在 NAN 的情况下,图例的“最佳”位置得到了改进。

有关更详细的解释和示例,请参阅图例指南

../../_images/sphx_glr_legend_demo_004.png

mplot3d#

为了继续努力使 matplotlib 中的 3D 绘图像 2D 绘图一样容易,Ben Root 对 mplot3d 模块进行了一些改进。

  • Axes3D 得到了改进,使其类在功能上与常规 Axes 对象更加接近

  • mplot3d 工具包的文档已大大扩展

  • 改进了轴标签和方向

  • 大多数 3D 绘图函数现在支持空输入

  • 添加了刻度偏移显示

../../_images/sphx_glr_offset_001.png
  • contourf() 获得了 zdiroffset kwargs。你现在可以这样做

../../_images/sphx_glr_contourf3d_2_001.png

Numerix 支持已移除#

在发出两年多的弃用警告后,Numerix 支持现在已从 matplotlib 中完全移除。

标记#

现在已经合并了 plot()scatter() 的可用标记列表。虽然它们大多相似,但某些标记存在于一个函数中,而不存在于另一个函数中。此合并确实导致了“d”菱形标记的冲突。现在,“d”将被解释为始终表示“细”菱形,而“D”将表示“常规”菱形。

感谢 Michael Droettboom 的这项努力。

其他改进#

  • 极坐标轴和 arrow() 的单位支持

  • PolarAxes 获得了 "theta_direction" 和 "theta_offset" 的 getter 和 setter,以允许 theta 沿顺时针或逆时针方向移动,并指定应放置零度的位置。set_theta_zero_location() 是一个添加的便利函数。

  • 修复了三角形函数(例如 tripcolor())的参数处理中的错误

  • axes.labelweight 参数已添加到 rcParams 中。

  • 对于 imshow()interpolation='nearest' 现在将始终执行插值。添加了一个 “none” 选项,表示根本不进行插值。

  • 修复了 Hammer 投影中的错误。

  • contour()clabel 现在接受可调用对象。感谢 Daniel Hyams 的原始补丁。

  • Jae-Joon Lee 添加了 HBoxDividerVBoxDivider 类。

  • Christoph Gohlke 减少了 imshow() 中的内存使用量。

  • scatter() 现在接受空输入。

  • 修复了“symlog”比例的行为,但这可能会导致现有绘图的一些细微变化。这项工作由 ssyr 改进。

  • Peter Butterworth 为 figure() 添加了命名图形支持。

  • Michiel de Hoon 修改了 MacOSX 后端,使其交互行为与其他后端一致。

  • Pim Schellart 添加了一个名为“cubehelix”的新颜色图。Sameer Grover 还添加了一个名为“coolwarm”的颜色图。请在此处查看它和所有其他颜色图:这里

  • 许多错误修复和文档改进。