Matplotlib 1.1 中的新功能 (2011 年 11 月 02 日)#
备注
matplotlib 1.1 支持 Python 2.4 到 2.7
桑基图#
Kevin Davies 将 Yannick Copin 的原始 Sankey 示例扩展为一个模块 ( sankey ) 并提供了新的示例 ( Sankey 类 , 使用 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() 来解决最常见的布局问题.
(Source code, 2x.png, png)
此功能的使用可以简单到如下所示
plt.tight_layout()
它将调整子图之间的间距,以便轴标签不与相邻的子图重叠.已经创建了一个 Tight layout guide 来展示如何使用这个新工具.
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 支持已删除#
在发出两年多的弃用警告后,现在已从 matplotlib 中完全删除 Numerix 支持.
标记#
plot() 和 scatter() 的可用标记列表现已合并. 虽然它们大多相似,但某些标记存在于一个函数中,而不存在于另一个函数中. 此合并确实导致了 'd' 菱形标记的冲突. 目前,'d' 将被解释为始终表示"细"菱形,而 'D' 将表示"常规"菱形.
感谢 Michael Droettboom 的努力.
其他改进#
极坐标轴和
arrow()的单位支持PolarAxes获得了"theta_direction"和"theta_offset"的 getter 和 setter,以允许 theta 沿顺时针或逆时针方向移动,并指定应放置零度的位置.set_theta_zero_location()是一个新增的便利函数.修复了诸如
tripcolor()等 tri 函数的参数处理错误.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" 的颜色图.在此处查看它和所有其他颜色图 here .
许多错误修复和文档改进.