1.4.x中的变化

代码更改

  • 对axes模块进行了主要的重构。轴模块已拆分为更小的模块:

    • 这个 _base 模块,其中包含一个新的私有 _AxesBase 班级。此类包含除打印和标记方法之外的所有方法。
    • 这个 axes module, which contains the axes.Axes class. This class inherits from _ AxesBase,并包含所有绘图和标记方法。
    • 这个 _subplot 模块,包含所有与子块相关的类。

有一些东西不存在于 axes 模块的命名空间已不复存在。如果使用它们,则需要从原始位置导入它们:

  • math -> import math
  • ma -> from numpy import ma
  • cbook -> from matplotlib import cbook
  • docstring -> from matplotlib import docstring
  • is_sequence_of_strings -> from matplotlib.cbook import is_sequence_of_strings
  • is_string_like -> from matplotlib.cbook import is_string_like
  • iterable -> from matplotlib.cbook import iterable
  • itertools -> import itertools
  • martist -> from matplotlib import artist as martist
  • matplotlib -> import matplotlib
  • mcoll -> from matplotlib import collections as mcoll
  • mcolors -> from matplotlib import colors as mcolors
  • mcontour -> from matplotlib import contour as mcontour
  • mpatches -> from matplotlib import patches as mpatches
  • mpath -> from matplotlib import path as mpath
  • mquiver -> from matplotlib import quiver as mquiver
  • mstack -> from matplotlib import stack as mstack
  • mstream -> from matplotlib import stream as mstream
  • mtable -> from matplotlib import table as mtable
  • 作为实现qt5支持的重构的一部分,模块 matplotlib.backends.qt4_compat 重命名为 matplotlib.backends.qt_compat . qt4_compat 在1.4中已弃用,将在1.5中删除。

  • 这个 errorbar() 方法已更改,使上限和下限( 洛利姆斯上行链路西洛里斯许普林 )现在指向正确的方向。

  • 这个 fmt 克沃格 errorbar() 现在支持字符串“none”来禁止绘制直线和标记;使用 None 对象已弃用。违约 fmt 值更改为空字符串(“”),因此行和标记由 plot() 默认值。

  • 在字体的路径效果呈现中修复了一个错误,这意味着字体大小与非路径效果字体一致。更多详情请参见https://github.com/matplotlib/matplotlib/issues/2889。

  • Sphinx 的扩展 ipython_directiveipython_console_highlighting 已经被转移到ipython项目本身。虽然他们在Matplotlib中保留了这个版本,但是他们已经被否决了。在中更新扩展名 conf.py 指向 IPython.sphinxext.ipython_directive 而不是 matplotlib.sphinxext.ipython_directive .

  • matplotlib.finance ,几乎所有函数都已弃用,并替换为一对函数名。 *_ochl*_ohlc . 前者是本模块之前使用的报价的“开盘-收盘-高-低”顺序,后者是财务标准的“开盘-高-低-收盘”顺序。

  • 为了保持一致性, face_alpha 关键字到 matplotlib.patheffects.SimplePatchShadow 已弃用,赞成 alpha 关键字。同样,关键字 offset_xy 现在命名为 offset 跨越所有 AbstractPathEffect S matplotlib.patheffects._Base 已重命名为 matplotlib.patheffects.AbstractPathEffect . matplotlib.patheffect.ProxyRenderer 已重命名为 matplotlib.patheffects.PathEffectRenderer 现在是一个完整的renderBase子类。

  • 这位艺术家曾画过 Figure.colorbar 已从 matplotlib.lines.Line2Dmatplotlib.patches.Polygon 因此 colorbar.ColorbarBase.outline 现在是 matplotlib.patches.Polygon 对象。

  • 图例处理程序接口已从可调用更改为实现 legend_artists 方法(折旧阶段将在v1.4中看到该接口的维护)。见 图例指南 更多详情。进一步的图例更改包括:

    • matplotlib.axes.Axes._get_legend_handles 现在返回句柄的生成器,而不是列表。
    • 这个 legend() 函数的 loc 位置参数已被弃用。使用 loc 取而代之的是关键字参数。
  • 这个 rcParams["savefig.transparent"] (default: False) 已添加以在保存数字时控制默认透明度。

  • 稍微重构 Annotation 家庭。文本位置在 Annotation 现在完全由 Text 对象如此 .set_position 按预期工作。属性 木文文本框 已弃用,赞成 西恩anncoords公司 以便 AnnotationAnnotationBbox 可以共享一个合理命名的通用API来获取/设置文本或框的位置。

    • 西恩 ->设置注释的位置
    • xy ->设置箭头指向的位置
    • anncoords公司 ->设置注释位置的单位
    • 木栓 ->设置点位置的单位
    • set_position() > Annotation 仅设置批注位置
  • matplotlib.mlab.specgrammatplotlib.mlab.psdmatplotlib.mlab.csdmatplotlib.mlab.coherematplotlib.mlab.cohere_pairsmatplotlib.pyplot.specgrammatplotlib.pyplot.psdmatplotlib.pyplot.csdmatplotlib.pyplot.cohere 现在在先前引发断言错误的地方引发ValueError。

  • 为了 matplotlib.mlab.psdmatplotlib.mlab.csdmatplotlib.mlab.coherematplotlib.mlab.cohere_pairsmatplotlib.pyplot.specgrammatplotlib.pyplot.psdmatplotlib.pyplot.csdmatplotlib.pyplot.cohere ,在返回shape(n,1)数组的情况下,现在将其转换为(n,1)数组。以前,(n,m)数组被平均为(n,1)数组,但是(n,1)数组没有变化。此更改使两种情况下的尺寸保持一致。

  • 增加了 rcParams["axes.formatter.useoffset"] (default: True) 控制的默认值 使用偏移 在里面 ticker.ScalarFormatter

  • 补充 Formatter 子类 StrMethodFormatter 哪一个和 FormatStrFormatter ,但用于新样式的格式字符串。

  • 已弃用 matplotlib.testing.image_util 唯一的功能是, matplotlib.testing.image_util.autocontrast . 这些将在v1.5.0中完全删除。

  • 这个 fmt 的参数 plot_date() 已从更改 bo 只是 o ,因此默认情况下可以进行颜色循环。

  • 删除了类 FigureManagerQTAgg 弃权 NavigationToolbar2QTAgg 将在1.5中删除。

  • 已删除以前的公共(无前缀)属性 rectdrawRectFigureCanvasQTAgg 它们始终是 drawRectangle() 功能。

  • 函数签名 tight_bbox.adjust_bboxtight_bbox.process_figure_for_rasterizing 已更改。一个新的 fixed_dpi 参数允许重写 figure.dpi 设置而不是尝试从文件格式推断预期行为。

  • 添加了对水平/垂直轴填充的支持 mpl_toolkits.axes_grid1.axes_grid.ImageGrid ---论点 axes_pad 如果需要单独的轴填充,现在可以像元组一样。保留原始行为。

  • 添加了对 matplotlib.transforms.Affine2D ,可以使用 skewskew_deg 方法。

  • 添加顺时针参数以控制扇区方向 axes.Axes.pie

  • matplotlib.lines.Line2D 这个 市场化的 功能已扩展。以前可以使用两元素列表或两元素元组来指定整数起始索引和步幅长度。现在这只能用两个元素的元组来实现。如果使用两个元素的列表,那么它将被视为NumPy花式索引,并且只显示与给定索引对应的两个标记。

  • 远离的 prop 关键字参数来自 mpl_toolkits.axes_grid1.anchored_artists.AnchoredSizeBar call. It was passed through to the base-class ``_ _inituU``且仅用于设置填充。现在 字体属性 (这是真正用来设置字体属性的 AnchoredSizeBar )通过代替 prop . 如果 字体属性 不是传进来的,但是 prop 是,那么 prop 用来代替 字体属性 . 如果两个都被传进来, prop 被静默地忽略。

  • 在中使用索引0 pyplot.subplot 和相关命令已弃用。由于缺乏有效性 plt.subplots(2, 2, 0) 不引发异常,但将轴放入 _last_ 位置。这是由于子块中的索引是基于1的(以镜像matlab),因此在索引到 GridSpec 对象,用于确定轴的方向,减去1。传入0将导致传入-1到 GridSpec 这就导致了最后一个位置的恢复。尽管这种行为显然是错误的,并不是有意的,但我们仍在经历一个不可预测的循环,我们非常谨慎地认为任何用户都在利用这个“特性”。使用0作为索引将在1.4中引发警告,在1.5中引发异常。

  • 默认情况下,剪裁在偏移框上处于关闭状态。

  • Matplotlib现在使用一个不太激进的调用 gc.collect(1) 当关闭数字以避免内存中大量用户对象的严重延迟时。

  • 默认剪辑值为 all 饼图艺术家现在默认为 False .

代码删除

  • 远离的 mlab.levypdf . 这部法典产生了一个纽比错误(而且已经有很长一段时间了),并且不是征税分配的标准形式。 scipy.stats.levy 应该改为使用