Matplotlib 1.1 的新功能 (2011年11月2日)#
注意
matplotlib 1.1 支持 Python 2.4 到 2.7
桑基图#
Kevin Davies 将 Yannick Copin 的原始桑基图示例扩展为一个模块(sankey
),并提供了新的示例(桑基类、使用桑基的长连接链、朗肯循环)。

动画#
Ryan May 编写了一个与后端无关的框架,用于创建动画图。 animation
模块旨在取代以前在示例列表中与后端相关的示例。使用新框架的示例位于动画中;请参阅迷人的double pendulum <gallery/animation/double_pendulum_sgskip.py>
,它使用matplotlib.animation.Animation.save()
来创建下面的视频。
这应被视为该框架的 Beta 版本;请尝试并提供反馈。
紧凑布局#
matplotlib 用户经常提出的一个问题是缺乏布局引擎来合理地安排绘图元素。虽然 matplotlib 仍然遵循让用户完全控制绘图元素放置的理念,但 Jae-Joon Lee 创建了 matplotlib.tight_layout
模块,并引入了一个新命令 tight_layout()
来解决最常见的布局问题。


这个功能的使用可以很简单,例如
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。后两者使用版本 2 Qt API。在大多数情况下,用户可以忽略此 rcParam 变量;它可用于帮助测试,并为将 matplotlib 嵌入 PyQt4 或 PySide 应用的用户提供控制。
图例#
Jae-Joon Lee 改进了绘图图例。首先,复杂图(例如 stem()
图)的图例现在将正确显示。其次,在存在 NAN 值的情况下,图例的“最佳”放置得到了改进。
有关更详细的解释和示例,请参阅图例指南。

mplot3d#
为了继续努力使 matplotlib 中的 3D 绘图像 2D 绘图一样简单,Ben Root 对 mplot3d
模块进行了多项改进。
Axes3D
已得到改进,使该类与常规 Axes 对象的功能保持一致mplot3d 工具包的文档已显著扩展
轴标签和方向得到改进
大多数 3D 绘图函数现在支持空输入
添加了刻度偏移显示

contourf()
获得了 zdir 和 offset kwargs。您现在可以这样做

Numerix 支持已移除#
经过两年多的弃用警告,Numerix 支持现已从 matplotlib 中完全移除。
标记#
plot()
和 scatter()
的可用标记列表现已合并。虽然它们大部分相似,但有些标记只存在于一个函数中,而另一个则没有。这次合并导致了“d”菱形标记的冲突。现在,“d”将始终表示“细”菱形,而“D”将表示“常规”菱形。
感谢 Michael Droettboom 为此付出的努力。
其他改进#
极坐标轴和
arrow()
的单位支持PolarAxes
增加了“theta_direction”和“theta_offset”的获取器和设置器,允许 theta 顺时针或逆时针方向移动,并指定零度应放置的位置。set_theta_zero_location()
是一个新增的便利函数。修正了
tripcolor()
等三角函数参数处理中的错误axes.labelweight
参数已添加到 rcParams。对于
imshow()
,interpolation='nearest' 现在将始终执行插值。已添加“none”选项以指示不进行任何插值。锤子投影中的一个错误已得到修复。
contour()
的 clabel 现在接受可调用对象。感谢 Daniel Hyams 提供原始补丁。Jae-Joon Lee 添加了
HBoxDivider
和VBoxDivider
类。Christoph Gohlke 减少了
imshow()
的内存使用。scatter()
现在接受空输入。“symlog”比例尺的行为已修复,但这可能会导致现有图的一些微小变化。这项工作由 ssyr 进行了完善。
Peter Butterworth 为
figure()
添加了命名图形支持。Michiel de Hoon 修改了 MacOSX 后端,使其交互行为与其他后端保持一致。
Pim Schellart 添加了一个名为“cubehelix”的新色图。Sameer Grover 还添加了一个名为“coolwarm”的色图。可在此处查看所有其他色图。
许多错误修复和文档改进。