API 在 1.3.x 中的变更#
1.3.1 中的变更#
我们很少在微型版本中进行 API 更改,但在 1.3.1 版本中,自 1.3.0 以来进行了以下更改:
代码移除#
- 以下在 1.2 或更早版本中已弃用的项目现已完全移除。 - Qt 3.x 后端 ( - qt和- qtagg) 已被移除,取而代之的是 Qt 4.x 后端 (- qt4和- qt4agg)。
- FltkAgg 和 Emf 后端已移除。 
- matplotlib.nxutils模块已移除。请改用- matplotlib.path.Path.contains_point及其相关功能。
- 请使用 - axes.Axes.patch而非- axes.Axes.get_frame。
- legend函数的以下关键字参数已重命名:- pad -> borderpad 
- labelsep -> labelspacing 
- handlelen -> handlelength 
- handletextsep -> handletextpad 
- axespad -> borderaxespad 
 - 与此相关,以下 rcParams 已移除: - legend.pad,
- legend.labelsep,
- legend.handlelen,
- legend.handletextsep和
- legend.axespad
 
- 对于 - hist函数,请使用 rwidth(相对宽度)而非 width。
- 在 - patches.Circle中,resolution 关键字参数已移除。对于由线段构成的圆,请使用- patches.CirclePolygon。
- Wx 后端中的打印功能已移除,因为维护它们的负担过重。 
- mlab.liaupunov已移除。
- mlab.save、- mlab.load、- pylab.save和- pylab.load已移除。我们建议改用- numpy.savetxt和- numpy.loadtxt。
- widgets.HorizontalSpanSelector已移除。请改用- widgets.SpanSelector。
 
代码弃用#
- CocoaAgg 后端已弃用,未来版本中可能会删除或恢复。 
- matplotlib.path中以 C++ 实现的顶级函数从未打算公开。相反,用户应该使用- path.Path和- collections.Collection类中它们的 Python 封装器。使用以下映射来更新您的代码:- point_in_path->- path.Path.contains_point
- get_path_extents->- path.Path.get_extents
- point_in_path_collection->- collections.Collection.contains
- path_in_path->- path.Path.contains_path
- path_intersects_path->- path.Path.intersects_path
- convert_path_to_polygons->- path.Path.to_polygons
- cleanup_path->- path.Path.cleaned
- points_in_path->- path.Path.contains_points
- clip_path_to_rect->- path.Path.clip_to_bbox
 
- matplotlib.colors.normalize和- matplotlib.colors.no_norm已弃用,分别改用- matplotlib.colors.Normalize和- matplotlib.colors.NoNorm。
- ScalarMappable类的- set_colorbar方法现已弃用。应改用- matplotlib.cm.ScalarMappable.colorbar属性。在以前的 Matplotlib 版本中,此属性是一个未文档化的元组- (colorbar_instance, colorbar_axes),但现在它只是- colorbar_instance。要获取颜色条轴,只需使用颜色条实例上的- matplotlib.colorbar.ColorbarBase.ax属性即可。
- matplotlib.mpl模块现已弃用。依赖此模块的用户应过渡到直接使用- import matplotlib as mpl。
代码更改#
- Patch现在完全支持为其- facecolor和- edgecolor属性使用 RGBA 值,这使得面和边可以具有不同的 alpha 值。如果- Patch对象的- alpha属性设置为非- None的任何值,则该值将覆盖面和边颜色中的任何 alpha 通道值。此前,如果- Patch的- alpha=None,则- edgecolor的 alpha 分量会应用于边和面。
- set_foreground()(以及其他继承自它的 GraphicsContext 类)的可选- isRGB参数已重命名为- isRGBA,并且现在仅在- fg颜色参数已知为 RGBA 元组时才应设置为- True。
- 对于 - Patch,现在使用的- capstyle是- butt,以与大多数其他对象的默认值保持一致,并避免当使用较大的- linewidth时非实心- linestyle显示为实心的问题。此前,- Patch使用- capstyle='projecting'。
- Path对象现在可以通过向其构造函数传入- readonly=True来标记为 只读。通过- Path.unit*类方法获取的内置路径单例返回只读路径。如果您的代码修改了这些路径,您需要首先进行深拷贝,使用以下方法之一:- import copy path = copy.deepcopy(Path.unit_circle()) # or path = Path.unit_circle().deepcopy() 
- Path.NUM_VERTICES处的列表已替换为将 Path 代码映射到- NUM_VERTICES_FOR_CODE处预期顶点数的字典。
- 为了支持 XKCD 风格绘图, - matplotlib.path.cleanup_path方法的签名已更新,要求传入一个 sketch 参数。- matplotlib.path.cleanup_path的用户被鼓励使用新的- cleaned()Path 方法。
- 绘图上的数据限制现在从“空”限制状态开始,而不是 (0, 1) 范围内的限制。这对于只控制一个方向限制的艺术家(如 - axes.Axes.axvline和- axes.Axes.axhline)有影响,因为它们的限制将不再包含 (0, 1) 范围。这修复了一些计算出的限制会依赖于艺术家添加到轴的顺序的问题。
- 修复了使用数据位置类型设置右/上脊线位置时的错误。此前,它会在 +1 数据偏移处绘制右或上脊线。 
- 在 - FancyArrow中,默认箭头头部宽度- head_width已增大,以生成可见的箭头头部。此 kwarg 的新值是- head_width = 20 * width。
- 现在可以为 - contourf(或仅为 extend 值- min或- max指定- number of levels颜色) 的- extend='both'情况提供- number of levels + 1种颜色,以便正确定义生成的色彩图的- set_under和- set_over。任何其他数量的颜色将继续像以前一样工作(如果提供的颜色多于级别,则这些颜色将不被使用)。类似的更改已应用于 contour,其中- extend='both'将期望- number of levels + 2种颜色。
- colorbar()和- ColorbarBase中新增关键字 extendrect 允许控制颜色条扩展的形状。
- MultiCursor扩展到垂直(默认)和/或水平光标意味着- self.line被垂直光标线替换为- self.vline,并且为水平光标线添加了- self.hline。
- 在 POSIX 平台上,如果无法运行 ps 命令, - matplotlib.cbook.report_memory函数会引发- NotImplementedError而不是- OSError。
- matplotlib.cbook.check_output函数已移至- matplotlib.compat.subprocess。
配置和 rcParams#
- 在 Linux 上,用户特定的 - matplotlibrc配置文件现在位于- ~/.config/matplotlib/matplotlibrc,以符合 XDG 基本目录规范。
- font.*rcParams 现在只影响在设置 rcParam 后创建的文本对象,而不会追溯影响已存在的文本对象。这使得它们的行为与大多数其他 rcParams 一致。
- 已移除 - matplotlib.pyplot.plotfile中对- grid()的调用。要绘制坐标轴网格,请将- axes.gridrcParam 设置为 True,或显式调用- grid()。