1.5.0中的变化

代码更改

颠倒的 matplotlib.cbook.ls_mapper ,补充说 ls_mapper_r

从前, matplotlib.cbook.ls_mapper 是一本具有长格式线条样式名称的字典 ("solid" )作为键和短形式 ("-" 作为价值。这个长到短的映射现在由 ls_mapper_r ,短到长的映射由 ls_mapper .

禁止在轴之间移动艺术家,属性化artist.axes,贬低艺术家。获取,设置u轴

这样做是为了防止已与轴关联的艺术家被移动/添加到其他轴。因为这会破坏转换堆栈,所以从未支持。对此的明显支持(因为它没有引发异常)是多个bug报告和问题的来源。

对于几乎所有的用例,轴应该作为艺术家的一部分由轴来处理轴的分配。 Axes.add_* 方法,因此对get、set u轴进行折旧。

去掉 set_axes 方法还将从AcceptedKwarg表中删除“axes”行(假设删除日期在该表被大修之前到达这里)。

“支点”Kwarg至震颤的加强输入验证

Tightened validation so that only {'tip', 'tail', 'mid', and 'middle'} (but any capitalization) are valid values for the pivot keyword argument in the Quiver class (and hence axes.Axes.quiver and pyplot.quiver which both fully delegate to Quiver). Previously any input matching 'mid.*' would be interpreted as 'middle', 'tip.*' as 'tip' and any string not matching one of those patterns as 'tail'.

价值 Quiver.pivot 标准化为在集合中的“tip”、“tail”、“middle”中 Quiver .

重新排序 Axes.get_children

艺术家订单由返回 axes.Axes.get_children 与使用的不匹配 axes.Axes.draw . 他们现在使用的顺序与 axes.Axes.draw 现在电话 axes.Axes.get_children .

等高线图的变化行为

违约行为 contour()contourf() 当使用屏蔽数组时,现在由new关键字参数确定 corner_mask ,或者如果未指定,则 rcParams["contour.corner_mask"] (default: True) 相反。新的默认行为相当于使用 corner_mask=True ;可以使用 corner_mask=False 或者通过更改rcparam。示例http://matplotlib.org/examples/pylab_examples/contour_corner_mask.html演示了这一区别。旧轮廓算法的使用 corner_mask='legacy' ,现已弃用。

现在,轮廓标签可能出现在不同的地方,而不是在早期版本的matplotlib中。

此外,关键字参数 新奇 现在适用于 contour() 以及 contourf() 它将域细分为 新奇 通过 新奇 四头肌,而以前只是大致上 新奇 通过 新奇 四头肌。

执行等值计算的C/C++对象,用于存储在公共属性中 QuadContourSet.Cntr ,但现在存储在私有属性中,最终用户不应访问它。

为所有定位器类型添加了set_params函数

这是一个错误修复,旨在使定位器的API更加一致。

在旧的行为中,只有maxnlocator类型的locator设置了定义的_params(),导致在任何其他locator上使用它来引发attributeError ( aside: set_params(args) is a function that sets the parameters of a Locator instance to be as specified within args) . 修复涉及将set_params()移动到定位器类,以便所有子类型都定义了此函数。

由于每个定位器子类型都有自己的可修改参数,因此定位器中的通用集合_params()并不理想。相反,在定位器中实现了一个引发警告的默认无操作函数。然后扩展定位器的子类型将使用它们自己的实现进行重写。不需要set_params()的子类型将返回到其父级的实现中,这将按预期引发警告。

在新行为中,当调用set_params()时,定位器实例不会引发attributeError。对于不实现set_params()的定位器,将使用定位器中的默认实现。

不允许的 None 在ax.plot中作为x或y值

不允许 None 作为 xy 精氨酸 axes.Axes.plot . 这可能会破坏一些用户代码,但这从未得到官方支持(例如文档),并且允许 None 对象通过可能会导致下游出现混淆的异常。

要创建空行,请使用:

ln1, = ax.plot([], [], ...)
ln2, = ax.plot([], ...)

在这两种情况下,更新 Line2D 对象必须同时更新 xy 数据。

远离的 args关键字参数MicrosecondLocator.__call__

的呼叫签名 __call__() 已从更改 __call__(self, *args, **kwargs)__call__(self) . 这和超类是一致的 Locator 以及从这个超类派生的所有其他定位器。

ValueError 用于微秒定位器和年份定位器

这个 MicrosecondLocatorYearLocator 如果轴没有数据或视图没有间隔,则调用时的对象将返回空列表。此前,他们提出 ValueError . 这与所有日期定位器是一致的。

'offsetbox.drawingArea'尊重'clip'关键字参数

呼叫签名是 OffsetBox.DrawingArea(..., clip=True) 但什么都没做 clip 争论。无论该参数如何,对象都不执行任何剪辑。现在,对象可以并且确实剪切子对象 Artist 如果他们被设置为剪辑。

您可以使用关闭每个孩子的剪辑 child.set_clip_on(False) .

向clippath id添加salt

将盐添加到用于确定 clipPath 节点。这是为了避免在同一文档中包含具有相同剪辑路径的两个SVG文档时发生冲突(请参见https://github.com/ipython/ipython/issues/8133和https://github.com/matplotlib/matplotlib/issues/4349),但这意味着如果同一个图形保存两次,SVG输出将不再具有确定性。预计这不会影响任何用户,因为当前ID是由剪辑路径属性的MD5哈希生成的,任何用户都很难预测ID的值。

已将圆形标记的快照阈值更改为inf

在某些标记大小(以前为6.0)以上绘制圆形标记时,用于生成标记的路径将捕捉到像素中心。然而,这最终会使标记偏离圆。通过将捕捉阈值设置为inf,就不会对圆执行捕捉。

这一变化打破了几项测试,但却是一个进步。

保留带文本位置的单位

以前,文本上的“获取位置”方法会去除单元信息,即使单元仍然存在。不存在这样做的固有需求,因此它已经被更改,以便保留单元数据(如果存在)。本质上,调用“get_position”会将调用的确切值返回到“set_position”。

如果您希望获得旧的行为,那么您可以使用名为“get_unitless_position”的新方法。

自定义轴视图更改的新API

交互式平移和缩放之前是使用笛卡尔特定算法实现的,该算法不一定适用于自定义轴。三种新的私人方法, matplotlib.axes._base._AxesBase._get_viewmatplotlib.axes._base._AxesBase._set_viewmatplotlib.axes._base._AxesBase._set_view_from_bbox ,允许自定义 Axes 类来覆盖平移和缩放算法。自定义的实现者 Axes 覆盖这些方法的用户可以为平移和缩放以及交互工具栏上的视图导航按钮提供适当的行为。

MathTex可视化更改

MathText中的间距命令已更改为更接近于普通的tex。

改进了MathText中的间距

删除下标和上标后出现的多余空间。

没有注释坐标环绕

在1.4.0的2351中, [“轴点”、“轴像素”、“图形点”、“图形像素”] 因为坐标已更改为负值不再换行。在1.4.3中,“轴点”和“轴像素”的更改被还原,并且导致“轴分数”被环绕。对于1.5,行为已恢复为1.4.0-1.4.2中的行为,任何类型的坐标都不进行包装。

贬低

已弃用 GraphicsContextBase.set_graylevel

这个 GraphicsContextBase.set_graylevel 函数已在1.5中弃用,将在1.6中删除。它一直没用过。这个 GraphicsContextBase.set_foreground 可以改为使用。

已弃用的空闲事件

这个 idle_event 在大多数后端中被破坏或丢失,并且在某些情况下会导致错误的警告,并且由于animations模块,它在创建动画中的使用现在已经过时。因此,除了wx后端(它部分工作的地方),涉及它的代码已经被删除,并且不推荐使用它。这个 animation 模块可用于创建动画。

color_cycle 贬低

针对新的属性循环特征,轴法 set_color_cycle 现已弃用。调用此方法将用只循环给定颜色的属性循环替换当前的属性循环。

同样,rc参数 axes.color_cycle 也被弃用以代替新的 rcParams["axes.prop_cycle"] (default: cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])) 参数。建议不要在同一个rc文件中同时使用这两个参数,因为无法预测结果。为了兼容性,设置 axes.color_cycle 将替换中的cycler rcParams["axes.prop_cycle"] (default: cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])) 有颜色循环。访问 axes.color_cycle 将仅返回属性循环的颜色部分(如果存在)。

尚未设置删除时间线。

绑定jQuery

与webagg后端捆绑的jquery版本已从1.7.1升级到1.11.3。如果您使用与webagg捆绑在一起的jquery版本,则需要更新HTML文件。

-    <script src="_static/jquery/js/jquery-1.7.1.min.js"></script>
+    <script src="_static/jquery/js/jquery-1.11.3.min.js"></script>

删除代码

远离的 Image 从主命名空间

Image 从PIL/枕头进口以测试PIL是否可用,但没有理由保留 Image 一旦确定了可用性,就在命名空间中。

远离的 lod 来自艺术家

删除了方法 set_lod 以及对属性的所有引用 _lod 因为它们不在代码库中的任何其他地方使用。它似乎是一个从未构建出来的特性存根。

远离的 Lena 样本数据中的图像

这个 lena.pnglena.jpg 图像已从Matplotlib的示例_数据目录中删除。图像也不再可以从 matplotlib.cbook.get_sample_data . 我们建议使用 matplotlib.cbook.get_sample_data('grace_hopper.png')matplotlib.cbook.get_sample_data('grace_hopper.jpg') 相反。

传说

移除的处理 loc 作为位置参数 Legend

图例处理器

删除代码以允许可以调用图例处理程序。他们现在必须实现一个方法 legend_artist .

轴线

去除方法 set_scale . 现在,这是通过一个私有方法处理的,用户不应该直接使用该方法。它叫VIA Axes.set_{{x,y}}scale 它负责确保对轴对象进行相关更改。

finance.py

已从finance.py中删除参数顺序不明确的函数

注释

远离的 textcoordsxytext 注释对象的属性。

sphinxext.ipython_*.py

两个 ipython_console_highlightingipython_directive 已经搬到了伊普顿。

更改导入来源 matplotlib.sphinxext.ipython_directiveIPython.sphinxext.ipython_directivematplotlib.sphinxext.ipython_directiveIPython.sphinxext.ipython_directive

LineCollection.color

2005年弃用,使用 set_color

去除 'faceted' 作为的有效值 阴影 在里面 tri.tripcolor

使用 变色染料 相反。在上添加验证 阴影 仅为有效值。

去除 faceted 从分散的夸格

拆下的支架 faceted 克瓦格在d48b34288e9651ff95c3b8a071ef5ac5cf50bae7(2008-04-18!)被替换 edgecolor .

去除 set_colorbar 方法从 ScalarMappable

去除 set_colorbar 方法、用途 colorbar 直接属性。

patheffects.svg

  • 去除 get_proxy_renderer 方法从 AbstarctPathEffect
  • 去除 patch_alphaoffset_xySimplePatchShadow

去除 testing.image_util.py

仅包含PIL中不再使用的功能端口

去除 mlab.FIFOBuffer

不在内部使用,也不是MPL核心任务的一部分。

去除 mlab.prepca

2009年已弃用。

去除 NavigationToolbar2QTAgg

没有在基础上添加任何功能 NavigationToolbar2Qt

mpl.py

拆除模块 matplotlib.mpl . 在1.3中被pr_1670否决,并提交78ce67d161625833cacf23cfe5d74920248c5b2