3.7.0 的 API 变更#
行为变更#
所有 Axes 现在都具有 get_subplotspec
和 get_gridspec
方法,对于未通过 gridspec 定位的 Axes,这些方法返回 None#
此前,此方法仅适用于通过 gridspec 定位的 Axes。此更改后,检查 hasattr(ax, "get_gridspec")
应该替换为 ax.get_gridspec() is not None
。为了与旧版 Matplotlib 兼容,也可以检查 hasattr(ax, "get_gridspec") and ax.get_gridspec() is not None
。
HostAxesBase.get_aux_axes
现在默认为使用与宿主轴相同的基本轴类#
如果使用基于 mpl_toolkits.axisartist
的宿主轴,寄生轴也将基于 mpl_toolkits.axisartist
。此行为与 HostAxesBase.twin
、HostAxesBase.twinx
和 HostAxesBase.twiny
一致。
plt.get_cmap
和 matplotlib.cm.get_cmap
返回一个副本#
以前,get_cmap
和 matplotlib.cm.get_cmap
返回 Colormap
的全局版本。这容易出错,因为色图的修改会在不发出警告的情况下从一个位置传播到另一个位置。现在,返回色图的新副本。
TrapezoidMapTriFinder
使用不同的随机数生成器#
TrapezoidMapTriFinder
中用于确定三角形边插入顺序的随机数生成器已更改。这可能导致对于恰好位于两个三角形之间边缘上的点返回不同的三角形索引。这还会影响使用 TrapezoidMapTriFinder
的三角剖分插值和细化算法。
FuncAnimation(save_count=None)
#
将 save_count=None
传递给 FuncAnimation
不再将帧数限制为 100。请确保它可以从 frames 推断,或者提供一个整数 save_count。
CenteredNorm
的 halfrange 不随 vcenter 更改而修改#
以前,**halfrange** 会与 **vcenter** 远离 **vmin** 或 **vmax** 的量成比例地扩展。现在,当 vcenter 改变时,halfrange 保持固定,并且 **vmin** 和 **vmax** 根据 **vcenter** 和 **halfrange** 值进行更新。
例如,这是以前更改 vcenter 时的值。
norm = CenteredNorm(vcenter=0, halfrange=1)
# Move vcenter up by one
norm.vcenter = 1
# updates halfrange and vmax (vmin stays the same)
# norm.halfrange == 2, vmin == -1, vmax == 3
而现在,对于相同的示例
norm = CenteredNorm(vcenter=0, halfrange=1)
norm.vcenter = 1
# updates vmin and vmax (halfrange stays the same)
# norm.halfrange == 1, vmin == 0, vmax == 2
可以手动设置 **halfrange**,或者在设置 **vcenter** 后使用 norm.autoscale()
自动设置限制。
fig.subplot_mosaic
不再将 gridspec_kw
参数传递给嵌套的 gridspecs。#
对于嵌套的 Figure.subplot_mosaic
布局,将 gridspec_kw 参数传递到较低的嵌套级别几乎总是不合适的,并且在许多情况下这些参数与较低级别不兼容。此字典不再传递给内部布局。需要在多个级别修改 gridspec_kw 的用户应使用 Figure.subfigures
来实现嵌套,并使用 Figure.subplots
或 Figure.subplot_mosaic
构造内部布局。
HPacker
与 **bottom** 或 **top** 的对齐现在正确#
以前,**bottom** 和 **top** 对齐是交换的。现在已纠正此问题,使对齐正确对应。
在 Windows 上,将只发现注册表中已知的字体#
此前,Matplotlib 会递归遍历用户和系统字体目录以发现字体,但这导致了一些不理想的行为,包括找到已删除的字体。现在 Matplotlib 只会找到 Windows 注册表中已知的字体。
这意味着任何用户安装的字体都必须通过 Windows 字体安装程序,而不能仅仅复制到正确的文件夹中。
这仅影响 Matplotlib 在使用 matplotlib.font_manager.findfont
时考虑的字体集。要使用任意字体,请直接传递字体路径,如 使用 ttf 字体文件 中所示。
QuadMesh.set_array
现在对于形状不正确的输入始终引发 ValueError
#
它以前在某些情况下也可能引发 TypeError
。
当给定布尔输入时,contour
和 contourf
自动选择合适的级别#
如果传递给 Axes.contour
或 Axes.contourf
的高度数组是布尔类型且未指定 levels,则 levels 现在默认为 contour
的 [0.5]
和 Axes.contourf
的 [0, 0.5, 1]
。
如果未绘制等高线,contour
不再发出警告。#
如果用户显式传递一个在 z.min()
和 z.max()
之间没有值的 levels
数组,或者如果 z
在所有位置都具有相同的值,则可能发生这种情况。
AxesImage.set_extent
现在对未知关键字参数引发 TypeError
#
它以前引发的是 ValueError
。
legend(loc="best")
行为的改变#
自动图例定位器的算法已进行了调整,以更好地处理非矩形图形。有关此更改的更多详细信息,请参阅 #9580 和 #9598。
弃用#
Axes 子类应重写 clear
而不是 cla
#
为了清晰起见,现在推荐使用 axes.Axes.clear
而不是 Axes.cla
。但是,为了向后兼容,后者仍将作为前者的别名。
为了与第三方库进一步兼容,Matplotlib 将继续调用任何 Axes
子类(如果它们定义了 cla
方法)。将来,这将不再发生,Matplotlib 将只调用 Axes
子类中的 clear
方法。
建议在 Matplotlib 3.6 上只定义 clear
方法,对于旧版本则只定义 cla
。
rcParams 类型#
依赖 rcParams
是 dict
子类已弃用。
对于普通用户来说,不会有任何变化,因为 rcParams
将继续保持类似字典的行为(技术上符合 MutableMapping
接口)。
RcParams
类在调用 .RcParams.__getitem__
和 .RcParams.__setitem__
时进行验证检查。但是,在极少数情况下,我们希望规避验证逻辑并直接访问底层数据值。以前,这可以通过调用父方法 dict.__getitem__(rcParams, key)
和 dict.__setitem__(rcParams, key, val)
来实现。
Matplotlib 3.7 引入了 rcParams._set(key, val)
和 rcParams._get(key)
作为调用父方法的替代。它们被故意标记为私有,以阻止外部使用;但是,如果需要直接访问 RcParams
数据,请从字典函数切换到新的 _get()
和 _set()
。即使标记为私有,我们仍保证这些方法的 API 稳定性,并且它们受 Matplotlib 的 API 和弃用策略约束。
如果您以其他方式依赖 rcParams
作为字典子类,而目前没有迁移路径,请通知 Matplotlib 开发人员。
cbook 中的弃用别名#
模块 matplotlib.cbook.deprecation
此前已在 Matplotlib 3.4 中弃用,同时 matplotlib.cbook
中与弃用相关的 API 也被弃用。由于技术问题,matplotlib.cbook.MatplotlibDeprecationWarning
和 matplotlib.cbook.mplDeprecation
在使用时未引发弃用警告。Python 中的更改现在使得在使用这些别名时可以发出警告。
为了避免下游中断,这些别名现在将发出警告,并且它们的移除已从 3.6 推迟到 3.8,以留出时间注意这些警告。作为替代,请使用 matplotlib.MatplotlibDeprecationWarning
。
draw_gouraud_triangle
#
... 已弃用,因为在大多数后端中,这是一个冗余调用。请改用 draw_gouraud_triangles
。自定义 Artist
中的 draw_gouraud_triangle
调用可以轻松替换为
self.draw_gouraud_triangles(gc, points.reshape((1, 3, 2)),
colors.reshape((1, 3, 4)), trans)
可以从现有 draw_gouraud_triangle
方法实现 draw_gouraud_triangles
方法,如下所示
transform = transform.frozen()
for tri, col in zip(triangles_array, colors_array):
self.draw_gouraud_triangle(gc, tri, col, transform)
matplotlib.pyplot.get_plot_commands
#
... 正在等待弃用。这被认为是内部的,终端用户不应需要它。
matplotlib.tri
子模块已弃用#
matplotlib.tri.*
子模块已弃用。所有功能都直接在 matplotlib.tri
中可用,应从那里导入。
将未定义的 label_mode 传递给 Grid
#
... 已弃用。这包括 mpl_toolkits.axes_grid1.axes_grid.Grid
、mpl_toolkits.axes_grid1.axes_grid.AxesGrid
和 mpl_toolkits.axes_grid1.axes_grid.ImageGrid
,以及从 mpl_toolkits.axisartist.axes_grid
导入的相应类。
请传递 label_mode='keep'
以获得不修改标签的先前行为。
孤立的可映射对象的颜色条已弃用,但不再引发异常#
在 3.6.0 之前,对于没有父轴的可映射对象,颜色条会占用当前 Axes 的空间。3.6.0 对此引发了错误,但没有弃用周期。对于 3.6.1,此行为已恢复,使用当前轴,但显示弃用警告。在这种不确定的情况下,用户和库应明确指定要从哪个轴窃取空间:fig.colorbar(mappable, ax=plt.gca())
。
Animation
属性#
TimedAnimation
及其子类的 repeat
属性和 FuncAnimation
的 save_count
属性被认为是私有且已弃用。
contour.ClabelText
和 ContourLabeler.set_label_props
#
... 已弃用。
使用 Text(..., transform_rotates_text=True)
替代 contour.ClabelText(...)
,使用 text.set(text=text, color=color, fontproperties=labeler.labelFontProps, clip_box=labeler.axes.bbox)
替代 ContourLabeler.set_label_props(label, text, color)
。
ContourLabeler
属性#
ContourLabeler
的 labelFontProps
、labelFontSizeList
和 labelTextsList
属性已弃用。请改用 labelTexts
属性和相应文本对象的字体属性。
backend_ps.PsBackendHelper
和 backend_ps.ps_backend_helper
#
... 已弃用,无替代。
backend_webagg.ServerThread
已弃用#
... 无替代。
parse_fontconfig_pattern
将不再忽略未知常量名#
以前,在像 DejaVu Sans:foo
这样的 fontconfig 模式中,未知的 foo
常量名会被默默忽略。现在这会引发警告,将来会变成错误。
BufferRegion.to_string
和 BufferRegion.to_string_argb
#
... 已弃用。使用 np.asarray(buffer_region)
获取缓冲区区域的数组视图,而不创建副本;要将该视图从 RGBA(默认)转换为 ARGB,请使用 np.take(..., [2, 1, 0, 3], axis=2)
。
num2julian
、julian2num
和 JULIAN_OFFSET
#
... dates
模块中的这些函数已弃用,没有替代品。它们未文档化且未导出。如果您依赖它们,请进行本地复制。
unit_cube
、tunit_cube
和 tunit_edges
#
... Axes3D
中的这些函数已弃用,没有替代品。如果您依赖它们,请复制相应私有函数(名称以 _
开头)的代码。
小部件的大多数参数已变为仅限关键字#
在 Widgets 构造函数中按位置传递除少数前几个参数之外的所有参数已弃用。大多数参数将在未来版本中成为仅限关键字的参数。
SimpleEvent
#
SimpleEvent
嵌套类(以前可通过 ConnectionStyle._Base
的公共子类(例如 ConnectionStyle.Arc
)访问)已弃用。
OffsetBox.get_extent_offsets
和 OffsetBox.get_extent
#
... 已弃用;这些方法在 OffsetBox
的所有子类上也已弃用。
要获取 offsetbox 范围,请改用 OffsetBox.get_bbox
而不是 get_extent
,它直接返回一个 Bbox
实例。
要同时获取子偏移量,请在触发绘制后,分别对每个子项调用 get_offset
,而不是使用 get_extent_offsets
。
legend.legendHandles
#
... 未文档化,已重命名为 legend_handles
。使用 legendHandles
已弃用。
Axis.set_ticklabels
的 ticklabels
参数已重命名为 labels
#
offsetbox.bbox_artist
#
... 已弃用。这只是一个包装器,用于在文件中设置标志时调用 patches.bbox_artist
,因此如果需要该行为,请直接使用它。
Quiver.quiver_doc
和 Barbs.barbs_doc
#
... 已弃用。这些是文档字符串,不应作为命名的类成员访问。
弃用 TextBox.begin_typing
中未使用的参数 x#
此参数在方法中未使用,但却是必需的参数。
弃用 mpl.cm
中顶层 cmap 注册和访问函数#
作为 多步骤过程 的一部分,我们正在重构用于管理注册色图的全局状态。
在 Matplotlib 3.5 中,我们添加了 ColormapRegistry
类,并在顶层公开了一个实例作为 matplotlib.colormaps
。matplotlib.cm
中的现有顶层函数(get_cmap
、register_cmap
、unregister_cmap
)已更改为围绕同一实例的别名。在 Matplotlib 3.6 中,我们已将这些顶层函数标记为待弃用。
在 Matplotlib 3.7 中,以下函数已被标记为弃用
matplotlib.cm.get_cmap
;如果您的输入是str
,请改用matplotlib.colormaps[name]
。在 3.6.1 中添加 如果您有字符串、
None
或matplotlib.colors.Colormap
对象,并希望将其转换为matplotlib.colors.Colormap
实例,请使用matplotlib.cm.ColormapRegistry.get_cmap
。matplotlib.cm.register_cmap
;请改用matplotlib.colormaps.register
matplotlib.cm.unregister_cmap
;请改用matplotlib.colormaps.unregister
matplotlib.pyplot.register_cmap
;请改用matplotlib.colormaps.register
matplotlib.pyplot.get_cmap
函数将继续可用以实现向后兼容性。
BrokenBarHCollection
已弃用#
它只是一个继承自 PolyCollection
的薄包装;broken_barh
现在已更改为返回 PolyCollection
。
BrokenBarHCollection.span_where
助手也已弃用;在弃用期间,它已移至父 PolyCollection
类。请改用 fill_between
;有关示例,请参阅 使用 fill_between 绘制由逻辑掩码定义的区域阴影。
将不一致的 loc
和 nth_coord
传递给 axisartist 助手#
尝试构造例如“顶部 y 轴”或“左侧 x 轴”现在已弃用。
passthru_pt
#
AxisArtistHelper
的此属性已弃用。
axes3d.vvec
、axes3d.eye
、axes3d.sx
和 axes3d.sy
#
... 已弃用,无替代。
Line2D
#
在创建 Line2D 或使用 Line2D.set_xdata
和 Line2D.set_ydata
时,传递非序列的 x/y 数据已弃用。
移除#
epoch2num
和 num2epoch
已移除#
这些方法将 Unix 时间戳转换为 Matplotlib 浮点数,但在 Matplotlib 内部不使用,终端用户也不应需要。要将 Unix 时间戳转换为 datetime,只需使用 datetime.datetime.fromtimestamp
,或者使用 NumPy datetime64
dt = np.datetime64(e*1e6, 'us')
。
定位器和格式化器包装器方法#
Locator
和 Formatter
(以及它们的共同基类 TickHelper)的 set_view_interval
、set_data_interval
和 set_bounds
方法已移除。请直接操作底层轴的视图和数据间隔。
交互式光标详细信息#
在窗口上设置鼠标光标已从工具栏移至画布。因此,工具栏上和后端内的几个实现细节已被移除。
backend_tools.SetCursorBase
及其子类#
backend_tools.SetCursorBase
被子类化以提供 set_cursor
的后端特定实现。由于该功能现已移除,因此不再需要子类化。因此,以下子类也已移除
matplotlib.backends.backend_gtk3.SetCursorGTK3
matplotlib.backends.backend_qt5.SetCursorQt
matplotlib.backends._backend_tk.SetCursorTk
matplotlib.backends.backend_wx.SetCursorWx
请改用 backend_tools.ToolSetCursor
类。
GTK 和 wx 后端中的 cursord
#
backend_gtk3.cursord
和 backend_wx.cursord
字典已移除。这使得 GTK 模块在无头环境中可以导入。
Axes3D
的 auto_add_to_figure=True
#
... 不再支持。请改用 fig.add_axes(ax)
。
Axes.grid
和 Axis.grid
的第一个参数已重命名为 visible#
此参数以前名为 b。此名称更改仅在参数通过关键字参数传递时才重要,例如 grid(b=False)
。
移除 Selector 小部件 API 中的弃用#
RectangleSelector 和 EllipseSelector#
RectangleSelector
的 drawtype 关键字参数已移除。从现在起,唯一行为将是 drawtype='box'
。
完全移除了对 drawtype=line
的支持。因此,RectangleSelector
的 lineprops 关键字参数也已移除。
要保留 drawtype='none'
的行为,请使用 rectprops={'visible': False}
使绘制的 Rectangle
不可见。
清理后的属性和参数有
active_handle
属性已私有化并移除。drawtype
属性已私有化并移除。eventpress
属性已私有化并移除。eventrelease
属性已私有化并移除。interactive
属性已私有化并移除。marker_props 参数已移除,请改用 handle_props。
maxdist 参数已移除,请改用 grab_range。
rectprops 参数已移除,请改用 props。
rectprops
属性已私有化并移除。state
属性已私有化并移除。to_draw
属性已私有化并移除。
PolygonSelector#
line 属性已移除。如果想更改选择器艺术家属性,请使用
set_props
或set_handle_props
方法。lineprops 参数已移除,请改用 props。
markerprops 参数已移除,请改用 handle_props。
maxdist 参数和属性已移除,请改用 grab_range。
vertex_select_radius 参数和属性已移除,请改用 grab_range。
SpanSelector#
active_handle
属性已私有化并移除。eventpress
属性已私有化并移除。eventrelease
属性已私有化并移除。pressv
属性已私有化并移除。prev
属性已私有化并移除。rect
属性已私有化并移除。rectprops 参数已重命名为 props。
rectprops
属性已私有化并移除。span_stays 参数已重命名为 interactive。
span_stays
属性已私有化并移除。state
属性已私有化并移除。
LassoSelector#
lineprops 参数已移除,请改用 props。
onpress
和onrelease
方法已移除。它们是press
和release
的直接别名。matplotlib.widgets.TextBox.DIST_FROM_LEFT
属性已移除。它在 3.5 版本中被标记为私有。
backend_template.show
#
... 已移除,以便更好地演示新的后端定义 API。
print_<fmt>
方法中未使用的位置参数#
画布子类实现的所有 print_<fmt>
方法都没有使用除了第一个参数(输出文件名或类文件对象)以外的位置参数,因此这些额外参数已被移除。
QuadMesh
签名#
QuadMesh
签名
def __init__(meshWidth, meshHeight, coordinates,
antialiased=True, shading='flat', **kwargs)
已移除,并替换为新签名
def __init__(coordinates, *, antialiased=True, shading='flat', **kwargs)
特别是
coordinates 参数现在必须是 (M, N, 2) 数组类。以前,网格形状单独指定为 (meshHeight + 1, meshWidth + 1),并且 coordinates 可以是任何形状的数组类,其中包含 M * N * 2 个元素。
除 coordinates 外,所有参数现在都是仅限关键字的。
FancyBboxPatch
弃用过期#
FancyBboxPatch
构造函数不再接受 bbox_transmuter 参数,boxstyle 参数也不能设置为“custom”——相反,直接将 boxstyle 设置为相关的 boxstyle 实例。mutation_scale 和 mutation_aspect 参数也已变为仅限关键字。
mutation_aspect 参数现在在内部处理,不再在修改补丁路径时传递给 boxstyle 可调用对象。
测试支持#
matplotlib.test()
已移除#
请改为从命令行运行 pytest
进行测试。matplotlib.default_test_modules
变量仅用于 matplotlib.test()
,因此也已移除。
要测试已安装的副本,请务必使用 --pyargs
指定 matplotlib
和 mpl_toolkits
pytest --pyargs matplotlib.tests mpl_toolkits.tests
有关更多详细信息,请参阅 测试。
pcolor
和 pcolormesh
自动移除网格#
pcolor
和 pcolormesh
以前会移除任何可见的轴主网格。此行为已移除;请明确调用 ax.grid(False)
来移除网格。
修改 Axes
子列表#
有关更多信息,请参阅 Axes 子项不再按类型分离;以下子列表的修改不再受支持
Axes.artists
Axes.collections
Axes.images
Axes.lines
Axes.patches
Axes.tables
Axes.texts
要移除 Artist,请使用其 Artist.remove
方法。要添加 Artist,请使用相应的 Axes.add_*
方法。
向 Axes.add_*
方法传递不正确的类型#
以下 Axes.add_*
方法在传递意外类型时将引发异常。有关它们期望的类型,请参阅其文档。
ConversionInterface.convert
不再接受无单位值#
此前,units.ConversionInterface
的自定义子类需要实现一个 convert
方法,该方法不仅接受单位实例,还接受无单位值(按原样传递)。现在情况不再如此(convert
从不使用无单位值调用),并且 .StrCategoryConverter
中的此类支持已移除。同样,.ConversionInterface.is_numlike
助手也已移除。
请考虑改用 Axis.convert_units
,它仍然支持无单位值。
HandlerLine2D.create_artists
现在返回普通的 Artist
对象列表#
对于 Matplotlib 3.5 和 3.6,返回了一个代理列表,它模拟了 HandlerLine2DCompound.create_artists
的返回。现在返回一个只包含单个艺术家的列表。
rcParams 将不再将输入强制转换为 str#
期望(非路径类)str 的 rcParams 不再使用 str
强制转换非 str 输入。这将避免后续代码中出现令人困惑的错误,例如列表输入被隐式强制转换为 str。
不区分大小写的刻度#
以前,刻度可以不区分大小写地设置(例如,set_xscale("LoG")
)。现在所有内置刻度都使用小写名称。
支持 AxesLocator
和 Divider.locate
中的 nx1 = None
或 ny1 = None
#
在 axes_grid1.axes_divider
中,各种内部 API 不再支持传递 nx1 = None
或 ny1 = None
表示 nx + 1
或 ny + 1
,这是为未来可能支持索引和切片分隔符的 API 做准备(可能 divider[a:b] == divider.new_locator(a, b)
,也可能 divider[a:] == divider.new_locator(a, <end>)
)。用户可见的 Divider.new_locator
API 未受影响——它会根据需要正确规范化 nx1 = None
和 ny1 = None
。
更改 .FigureCanvasBase.enter_notify_event
的签名#
xy 参数现在是必需的且仅限关键字。这在 3.0 中已弃用,最初计划在 3.5 中移除。
Colorbar
刻度更新参数#
Colorbar.set_ticks
和 Colorbar.set_ticklabels
的 update_ticks 参数自 3.5 起被忽略,现已移除。
绘图指令移除#
公共方法
matplotlib.sphinxext.split_code_at_show
matplotlib.sphinxext.unescape_doctest
matplotlib.sphinxext.run_code
已被移除。
绘图指令中已弃用的 encoding 选项已移除。
杂项移除#
is_url
和URL_REGEX
已移除。(它们以前在顶层matplotlib
模块中定义。)ArrowStyle.beginarrow
和ArrowStyle.endarrow
属性已移除;请使用arrow
属性来定义所需的箭头头部和尾部。backend_pgf.LatexManager.str_cache
已移除。backends.qt_compat.ETS
和backends.qt_compat.QT_RC_MAJOR_VERSION
已移除,无替代。blocking_input
模块已移除。请改用canvas.start_event_loop()
和canvas.stop_event_loop()
,同时根据需要连接事件回调。cbook.report_memory
已移除;请改用psutil.virtual_memory
。cm.LUTSIZE
已移除。请改用 rcParams["image.lut"](默认值:256
)。此值仅影响在模块导入时生成的默认色图的色图量化级别。Colorbar.patch
已移除;此属性不再正确更新。ContourLabeler.get_label_width
已移除。Dvi.baseline
已移除(无替代)。dviread.find_tex_file
的 format 参数已移除(无替代)。FancyArrowPatch.get_path_in_displaycoord
和ConnectionPath.get_path_in_displaycoord
已移除。在显示坐标中的路径仍然可以通过patch.get_transform().transform_path(patch.get_path())
获得,与其他补丁类似。font_manager.win32InstalledFonts
和font_manager.get_fontconfig_fonts
辅助函数已移除。imshow
的所有参数从 aspect 开始都变为仅限关键字。QuadMesh.convert_mesh_to_paths
和QuadMesh.convert_mesh_to_triangles
已移除。QuadMesh.get_paths()
可用作前者的替代;后者无替代。ScalarMappable.callbacksSM
已移除。请改用ScalarMappable.callbacks
。streamplot.get_integrator
已移除。style.core.STYLE_FILE_PATTERN
、style.core.load_base_library
和style.core.iter_user_libraries
已移除。SubplotParams.validate
已移除。请使用SubplotParams.update
来更改SubplotParams
,同时始终保持其处于有效状态。TexManager
的grey_arrayd
、font_family
、font_families
和font_info
属性已移除。Text.get_prop_tup
已移除,无替代(因为Text
类无法知道后端是否需要更新缓存,例如当文本颜色更改时)。Tick.apply_tickdir
实际上并未更新用于绘制刻度的现有 Line2D 对象上的刻度标记,现已移除;请改用Axis.set_tick_params
。tight_layout.auto_adjust_subplotpars
已移除。axisartist
类的grid_info
属性已移除。axes_grid1.axes_grid.CbarAxes
和axisartist.axes_grid.CbarAxes
已移除(它们现在根据所属轴类动态生成)。axes_grid1.Divider.get_vsize_hsize
和axes_grid1.Grid.get_vsize_hsize
方法已移除。AxesDivider.append_axes(..., add_to_figure=False)
已移除。如果需要从图形中移除 Axes,请使用ax.remove()
。FixedAxisArtistHelper.change_tick_coord
已移除,无替代。floating_axes.GridHelperCurveLinear.get_boundary
已移除,无替代。ParasiteAxesBase.get_images_artists
已移除。“单位终结”信号(以前由 Axis 实例发出)已移除。请改连接到“units”。
不再可能以位置方式将格式化参数传递给
stem()
。axisartist.clip_path
已移除,无替代。
开发变更#
Windows wheel 运行时捆绑#
为 Windows 构建的 wheel 现在捆绑了 MSVC 运行时 DLL msvcp140.dll
。这使得在未安装运行时的系统上导入 Matplotlib 成为可能。
依赖项的最低支持版本提升#
对于 Matplotlib 3.7,最低支持版本 正在提升
依赖项 |
mpl3.6 中的最小值 |
mpl3.7 中的最小值 |
---|---|---|
NumPy |
1.19 |
1.20 |
pyparsing |
2.2.1 |
2.3.1 |
Qt |
5.10 |
没有同时支持 Qt 5.9(或更旧版本)和 Python 3.8(或更新版本)的 wheel 或 conda 包。
新依赖项#
importlib-resources (>= 3.2.0; 仅在 Python < 3.10 时需要)
最大行长度增加到 88 个字符#
新贡献的最大行长度已从 79 个字符扩展到 88 个字符。此更改额外提供了 9 个字符,允许将单个想法的代码放在更少的行中(通常是单行)。所选长度与 black 相同。