2.2.0中的API变更

新依赖

kiwisolver 现在是支持新的受约束布局所必需的依赖项,请参见 受约束的布局参考线 了解更多详细信息。

贬抑

类、函数和方法

未使用和未测试 Artist.onRemoveArtist.hitlist 方法已被弃用。

现在未使用 mlab.less_simple_linear_interpolation 函数已弃用。

未使用的 ContourLabeler.get_real_label_width 方法已弃用。

未使用的 FigureManagerBase.show_popup 方法已弃用。这在E945059B327D42A99939A1BE867FA023E7BA于2005年推出,但从未内置到任何后端。

backend_tkagg.AxisMenu 已弃用,因为自从删除“经典”工具栏后,它已不再使用。

更改的函数签名

克瓦格 figGridSpec.get_subplot_params 已弃用,请使用 figure 相反。

使用 pyplot.axes 用一个 Axes 因为参数已被弃用。这将设置当前轴,即其效果与 pyplot.sca . 为清晰起见 plt.sca(ax) 应该优先于 plt.axes(ax) .

不推荐使用字符串而不是布尔值来控制网格和刻度可见性。使用 "on", "off", "true", or "false" to control grid and tick visibility has been deprecated. Instead, use normal booleans (True/False )或者布尔喜欢。将来,所有非空字符串都可以解释为 True .

当给定具有不匹配列数的二维输入时, plot 目前,在较窄输入的列之间循环,直到较宽输入的所有列都已绘制出来。此行为已被弃用;将来,仅广播(1列到 n 将执行列)。

RCPARAMS

这个 rcParams["backend.qt4"]rcParams["backend.qt5"] 版本2.2中不推荐使用RCPARAM。为了强制使用特定的qt绑定,请先导入该绑定,或设置 QT_API 环境变量。

折旧 nbagg.transparent RCPARAM。要控制nbagg(或任何其他)后端中图形补丁的透明度,请直接设置 figure.patch.facecolor ,或者 figure.facecolor RCPARAM。

已弃用 Axis.unit_data

使用 Axis.units (早已存在)相反。

移除

函数签名

轮廓不再支持 legacy 拐角遮蔽。被蔑视的 ContourSet.vminContourSet.vmax 属性已被删除。

经过 None 而不是 "none" 作为格式到 errorbar 不再支持。

这个 bgcolor 关键字参数 Axes 已删除。

模块、方法和功能

这个 matplotlib.financempl_toolkits.exceltoolsmpl_toolkits.gtktools 模块已被移除。 matplotlib.finance 请访问https://github.com/matplotlib/mpl_finance。

这个 mpl_toolkits.mplot3d.art3d.iscolor 函数已被删除。

这个 Axes.get_axis_bgcolorAxes.set_axis_bgcolorBbox.update_from_dataBbox.update_datalim_numerixMaxNLocator.bin_boundaries 方法已被删除。

mencoder 无法再用于对动画进行编码。

未使用的 FONT_SCALEfontd 的属性 RendererSVG 类已被删除。

彩色地图

这个 spectral 颜色映射已删除。这个 Vega* 颜色映射,它是 tab* 彩色地图,已删除。

RCPARAMS

已删除以下已弃用的RCPARAM:

  • axes.color_cycle (见 axes.prop_cycle
  • legend.isaxes,
  • svg.embed_char_paths (见 svg.fonttype
  • text.fontstyletext.fontangletext.fontvarianttext.fontweighttext.fontsize (重命名为 text.style 等)
  • tick.size (重命名为 tick.major.size

只接受类似字符串的分类输入

不接受混合字符串/浮点/int输入,只有字符串是有效的类别。

删除未使用的进口

从代码库中删除了许多未使用的导入。因此,尝试从“错误”模块(例如 Figurematplotlib.backends.backend_agg 而不是 matplotlib.figure )现在将提高 ImportError .

Axes3D.get_xlimget_ylimget_zlim 现在返回一个元组

他们以前返回了一个数组。返回元组与二维轴的行为一致。

异常类型更改

如果 MovieWriterRegistry 找不到请求的 MovieWriter ,更有用的 RuntimeError 现在引发消息,而不是以前引发的 KeyError .

auto_adjust_subplotpars 现在提出 ValueError 而不是 RuntimeError 当输入列表的大小不匹配时

Figure.set_figwidthFigure.set_figheight 违约 向前地 真的吗

matplotlib.figure.Figure.set_figwidthmatplotlib.figure.Figure.set_figheight 有关键字参数 forward=False 默认情况下,但 figure.Figure.set_size_inches 现在默认为 forward=True . 这就使得这些功能是连续的。

不要将SVG大小截断到最近的点

没有理由调整SVG的输出整数点的大小,改为输出浮点 高度宽度视窗 的属性 svg 元素。

小于1磅的字体大小被剪裁为1磅。

freetype不允许字体小于1磅,所以所有的agg后端都会自动四舍五入到1磅。PDF(其他矢量后端?)让我们写的字体小于1磅,但他们不能正确放置,因为位置信息来自freetype。这一变化使得任何后端都不能使用小于1磅的字体,与freetype一致,并确保后端的结果更加一致。

对qt后端类mro的更改

为了支持qt后端的agg和cairo呈现,以前在 backend_qt5agg.FigureCanvasQTAggBase 已移至 backend_qt5.FigureCanvasQT 因此,它可以与cairo实现共享。这个 FigureCanvasQTAggBase.paintEventFigureCanvasQTAggBase.blitFigureCanvasQTAggBase.print_figure 方法已移至 FigureCanvasQTAgg.paintEvent()FigureCanvasQTAgg.blit()FigureCanvasQTAgg.print_figure() . 前两个方法假定实例也是 QWidget 所以使用 FigureCanvasQTAggBase 它被要求从 QWidget 子类。

已将其所有方法向上或向下移动类层次结构 FigureCanvasQTAggBase 已被弃用。在没有警告的情况下这样做,并尽可能保留API, .backend_qt5agg.FigureCanvasQTAggBase 现在继承自 backend_qt5.FigureCanvasQTAgg .

MRO FigureCanvasQTAggFigureCanvasQTAggBase 曾经是:

[matplotlib.backends.backend_qt5agg.FigureCanvasQTAgg,
 matplotlib.backends.backend_qt5agg.FigureCanvasQTAggBase,
 matplotlib.backends.backend_agg.FigureCanvasAgg,
 matplotlib.backends.backend_qt5.FigureCanvasQT,
 PyQt5.QtWidgets.QWidget,
 PyQt5.QtCore.QObject,
 sip.wrapper,
 PyQt5.QtGui.QPaintDevice,
 sip.simplewrapper,
 matplotlib.backend_bases.FigureCanvasBase,
 object]

和:

[matplotlib.backends.backend_qt5agg.FigureCanvasQTAggBase,
 matplotlib.backends.backend_agg.FigureCanvasAgg,
 matplotlib.backend_bases.FigureCanvasBase,
 object]

分别。他们现在是:

[matplotlib.backends.backend_qt5agg.FigureCanvasQTAgg,
 matplotlib.backends.backend_agg.FigureCanvasAgg,
 matplotlib.backends.backend_qt5.FigureCanvasQT,
 PyQt5.QtWidgets.QWidget,
 PyQt5.QtCore.QObject,
 sip.wrapper,
 PyQt5.QtGui.QPaintDevice,
 sip.simplewrapper,
 matplotlib.backend_bases.FigureCanvasBase,
 object]

和:

[matplotlib.backends.backend_qt5agg.FigureCanvasQTAggBase,
 matplotlib.backends.backend_qt5agg.FigureCanvasQTAgg,
 matplotlib.backends.backend_agg.FigureCanvasAgg,
 matplotlib.backends.backend_qt5.FigureCanvasQT,
 PyQt5.QtWidgets.QWidget,
 PyQt5.QtCore.QObject,
 sip.wrapper,
 PyQt5.QtGui.QPaintDevice,
 sip.simplewrapper,
 matplotlib.backend_bases.FigureCanvasBase,
 object]

axes.Axes.imshow 将RGB值剪辑到有效范围

什么时候? axes.Axes.imshow 传递一个带有超出范围值的rgb或rgb a值时,它现在会记录一个警告并将其剪辑到有效范围。旧的行为,包装回到范围,往往隐藏离群值,并使解释RGB图像不可靠。

gtkagg和gtkcairo后端已弃用

gtkagg和gtkcairo后端已被弃用。这些过时的后端允许通过GTK+2工具包呈现数字。它们未经测试,已知已被破坏,将无法与Python3一起使用,并且它们的使用已经受到了一段时间的限制。相反,使用 GTK3AggGTK3Cairo 用于渲染到GTK+3窗口的后端。