Matplotlib 1.1 的新特性 (2011年11月2日)#
备注
matplotlib 1.1 支持 Python 2.4 到 2.7
桑基图#
Kevin Davies 将 Yannick Copin 的原始 Sankey 示例扩展为一个模块(sankey),并提供了新的示例(Sankey 类,使用Sankey的长连接链,兰金动力循环)。
动画#
Ryan May 编写了一个与后端无关的框架,用于创建动画图形。animation 模块旨在替代以前在 示例 列表中的后端特定示例。使用新框架的示例在 动画 中;请参阅迷人的 双摆 <gallery/animation/double_pendulum_sgskip.py>,它使用 matplotlib.animation.Animation.save() 创建了下面的电影。
这应被视为框架的测试版发布;请试用并提供反馈。
紧凑布局#
matplotlib 用户经常提出的一个问题是没有布局引擎来合理地排列图表中的元素。虽然 matplotlib 仍然坚持让用户完全控制图表元素的放置位置,但 Jae-Joon Lee 创建了 matplotlib.tight_layout 模块,并引入了一个新命令 tight_layout() 来解决最常见的布局问题。
(Source code, 2x.png, png)
这个功能的使用可以非常简单,如下所示
plt.tight_layout()
并且它会调整子图之间的间距,以使轴标签不会与相邻的子图重叠。已经创建了一个 紧凑布局指南 来展示如何使用这个新工具。
PyQT4、PySide 和 IPython#
Gerald Storer 使 Qt4 后端兼容了 PySide 以及 PyQT4。然而,目前 PySide 不支持处理文本输入时等待的 gui 事件的 PyOS_InputHook 机制,因此它不能与 IPython 的新版本 0.11 一起使用。在 PySide 中出现此功能之前,IPython 用户应使用 QT4 的 PyQT4 包装器,这仍然是 matplotlib 的默认设置。
添加了一个 rcParam 条目,“backend.qt4”,允许用户选择 PyQt4、PyQt4v2 或 PySide。后两者使用版本 2 的 Qt API。在大多数情况下,用户可以忽略此 rcParam 变量;它可用于测试,并为在 PyQt4 或 PySide 应用中嵌入 matplotlib 的用户提供控制。
图例#
Jae-Joon Lee 改进了绘图图例。首先,对于 stem() 这样的复杂绘图,图例现在可以正确显示。其次,在存在 NAN 的情况下,图例的 '最佳' 位置放置得到了改进。
更多详细解释和示例,请参阅 图例指南。
mplot3d#
在继续努力使 matplotlib 中的 3D 绘图与 2D 绘图一样简单的同时,Ben Root 对 mplot3d 模块进行了多项改进。
Axes3D已得到改进,以使该类在功能上与常规 Axes 对象保持一致。对 mplot3d 工具包 的文档进行了显著扩展
轴标签和方向改进
大多数三维绘图函数现在支持空输入
添加了刻度偏移显示:
contourf()增加了 zdir 和 offset 关键字参数。你现在可以这样做:
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”选项,表示完全不进行插值。Hammer 投影中的一个错误已被修复。
clabel 用于
contour()现在接受一个可调用对象。感谢 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”的色图。查看它以及所有其他色图 这里。
许多错误修复和文档改进。