Matplotlib 1.1 (2011 年 11 月 2 日) 的新特性#
注意
matplotlib 1.1 支持 Python 2.4 至 2.7
桑基图#
Kevin Davies 将 Yannick Copin 的原始桑基图示例扩展为一个模块 (sankey
),并提供了新的示例 (桑基图类、使用桑基图的长链连接、朗肯循环)。
动画#
Ryan May 编写了一个独立于后端的框架,用于创建动画图形。animation
模块旨在取代以前位于 示例 列表中的特定于后端的示例。使用新框架的示例位于 动画 中;请查看迷人的 双 摆 <gallery/animation/double_pendulum_sgskip.py>
,它使用 matplotlib.animation.Animation.save()
来创建下面的影片。
这应该被视为该框架的测试版;请尝试并提供反馈。
紧凑布局#
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。后两者使用 Version 2 Qt API。在大多数情况下,用户可以忽略此 rcParam 变量;它可用于帮助测试,并为在 PyQt4 或 PySide 应用程序中嵌入 matplotlib 的用户提供控制。
图例#
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" 的 getter 和 setter,以允许 theta 沿顺时针或逆时针方向移动,并指定应放置零度的位置。set_theta_zero_location()
是一个添加的便利函数。修复了三角形函数(例如
tripcolor()
)的参数处理中的错误axes.labelweight
参数已添加到 rcParams 中。对于
imshow()
,interpolation='nearest' 现在将始终执行插值。添加了一个 “none” 选项,表示根本不进行插值。修复了 Hammer 投影中的错误。
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”的颜色图。请在此处查看它和所有其他颜色图:这里。
许多错误修复和文档改进。