3.1.0的API更改¶
行为改变¶
Matplotlib.use¶
通过以下方式切换后端 matplotlib.use
现在默认情况下是允许的,无论 matplotlib.pyplot
已导入。如果用户尝试从已启动的交互式后端切换到其他交互式后端,则 ImportError
将被提升。
PathCollections中的无效点¶
使用创建的路径集合 scatter
现在跟踪无效点。以前,具有非限定(无限或nan)坐标的点不会包括在偏移中(由返回 PathCollection.get_offsets
)的 PathCollection
创建的 scatter
,和具有非限定值的点(由 c kwarg)将不包含在数组中(由返回 PathCollection.get_array
)
这样的点现在包括在内,但是通过返回一个屏蔽数组来屏蔽。
如果 非有限地块 克瓦格 scatter
设置,则具有非限定值的点将使用 collections.PathCollection
的colormap(由设置 colors.Colormap.set_bad()
)
RBGA输入图像显示中的Alpha混合¶
RBGA图像的alpha通道现在独立于RGB通道重新采样。虽然这是一个错误修复,但它确实会更改输出,并可能导致某些下游图像比较测试失败。
自标定¶
在以“完整”十年(1、10、100等)绘制单个值的对数轴上,自动缩放现在围绕该点对称地扩展轴,而不是只在右侧添加十年。
对数刻度轴¶
当默认 LogLocator
将不会为一个轴生成记号(例如,限制在0.31到0.39之间的轴)或仅生成一个记号,它现在会回到线性上 AutoLocator
选择合理的勾选位置。
Figure.add_subplot
没有争论¶
调用 Figure.add_subplot()
没有用于什么作用的位置参数;这相当于调用 add_subplot(111)
相反。
bxp
和rcparams¶
bxp
现在尊重 rcParams["boxplot.boxprops.linewidth"]
(default: 1.0
) 即使当 patch_artist 已设置。以前,当 patch_artist 参数已设置, bxp
会忽略 rcParams["boxplot.boxprops.linewidth"]
(default: 1.0
) . 这是一个疏忽——尤其是, boxplot
没有忽视它。
主要/次要滴答碰撞¶
默认情况下,与主记号碰撞的次要记号现在处于隐藏状态。以前,某些定位器类 (LogLocator
, AutoMinorLocator
)包含自定义逻辑,以避免在将记号用作次要定位器时发出与主记号冲突的记号位置。这个逻辑现在转移到 Axis
类,并且无论定位器类如何使用。您可以通过 remove_overlaping_locs
属性对 Axis
.
如果您同时依赖主刻度和次刻度标签显示在同一个刻度上,则可能需要更新代码。例如,以下代码片段:
import numpy as np
import matplotlib.dates as mdates
import matplotlib.pyplot as plt
t = np.arange("2018-11-03", "2018-11-06", dtype="datetime64")
x = np.random.rand(len(t))
fig, ax = plt.subplots()
ax.plot(t, x)
ax.xaxis.set(
major_locator=mdates.DayLocator(),
major_formatter=mdates.DateFormatter("\n%a"),
minor_locator=mdates.HourLocator((0, 6, 12, 18)),
minor_formatter=mdates.DateFormatter("%H:%M"),
)
# disable removing overlapping locations
ax.xaxis.remove_overlapping_locs = False
plt.show()
使用主刻度标记天,使用小刻度标记小时和分钟,并向主刻度标签添加新行,以避免它们撞到次要刻度标签上。设置 remove_overlapping_locs
酒店(也可通过 set_remove_overlapping_locs
/ get_remove_overlapping_locs
和 setp
)禁用删除重叠记号位置。
主要的刻度标签也可以调整为包括小时和分钟,因为次要刻度消失了,所以 major_formatter
可能是:
mdates.DateFormatter("%H:%M\n%a")
usetex支持¶
以前,如果 rcParams["text.usetex"]
(default: False
) 是真的,然后构造一个 TextPath
在非mathtext字符串上 usetex=False
将依赖于mathtext解析器(但不支持usetex!)解析字符串。不再调用mathtext解析器,这可能会导致字形位置的细微变化。
get_window_extents¶
matplotlib.axes.Axes.get_window_extent
用于返回略大于轴的边界框,可能是为了考虑脊椎上的记号。但是,它没有根据画布的dpi缩放tick的大小,也没有检查tick是否可见,或者在脊椎上。
现在 matplotlib.axes.Axes.get_window_extent
只返回轴范围,不填充刻度。
这种影响 matplotlib.axes.Axes.get_tightbbox
如果有没有记号标签的外部记号,它也会删除轴周围的(小)焊盘。
spines.Spine.get_window_extent
现在考虑脊椎上的蜱虫。
桑基¶
以前, Sankey.add
只接受一个字符串作为 标签 参数,如果它的长度等于流的数目,在这种情况下,它将为每个流使用一个字符串字符。
该行为已更改为与记录的行为相匹配:当传递单个字符串时,它将用于标记所有流。
FontManager
分数¶
font_manager.FontManager.score_weight
现在对其投入更加严格。以前,当权重字符串传递给 font_manager.FontManager.score_weight
,
- 如果权重是整数的字符串表示,它将被转换为该整数,
- 否则,如果权重不是标准权重名称,它将被值500(“正常”权重)自动替换。
font_manager.FontManager.score_weight
现在对这些输入引发一个异常。
文本对齐方式¶
文本对齐以前是不正确的,尤其是对于具有大下伸(即下标)和旋转文本的多行文本对象。这些已经被修复,并且变得更加一致,但是可能会使已经补偿了这些的旧代码不再具有正确的对齐方式。
大写颜色字符串¶
不赞成将单字母颜色(“rgbcmykw”之一)作为大写字符传递的支持已被弃用;在否决期过后,这些颜色将变为区分大小写(小写)。
目标是在使用 data
绘图方法的关键字;例如。 plot("X", "Y", data={{"X": ..., "Y": ...}})
不会警告“Y”可能是一种颜色,在弃用期过后。
plot
格式字符串分析¶
在某些情况下, plot
以前会接受指定多个线型的格式字符串(例如。 "---."
它指定了两者 "--"
和 "-."
);只使用其中一个。现在会引发一个 ValueError
相反。
HTMLWriter¶
HTMLWriter构造函数更严格:它不再规范化 default_mode 以“循环”,但会出错。
原子力显微镜分析¶
根据AFM规范,AFM解析器不再截断 UnderlinePosition
和 UnderlineThickness
字段到整数。
这个 Notice
字段(只能由不推荐的 afm.parse_afm
API)不再解码为 str
,但却保留为 bytes
,以支持在该字段中使用非ASCII字符的不一致AFM文件。
Artist.set
关键字规范化¶
Artist.set
现在在对关键字进行排序之前对它们进行规范化。以前,它按字母顺序倒序排列关键字参数(使用一个特殊的大小写来放置 color
最后)在应用它们之前。
它现在在进行排序之前规范化别名(如上所述,对重复属性发出警告)(因此 c
也到最后)。
Axes.tick_params
参数检查¶
以前 Axes.tick_params
当一个病人 axis 提供了参数。此行为已更改为引发 ValueError
相反。
backend_bases.Timer.remove_callback
未来签名更改¶
目前, backend_bases.Timer.remove_callback(func, *args, **kwargs)
删除以前由添加的回调 backend_bases.Timer.add_callback(func, *args, **kwargs)
但如果 *args, **kwargs
未传入(例如, Timer.remove_callback(func)
),然后使用匹配的 func
删除,而不管它是添加还是不添加 *args, **kwargs
.
在未来的版本中, Timer.remove_callback
将始终使用后一种行为(不考虑 *args, **kwargs
);要特别考虑它们,请将回调添加为 functools.partial
对象::
cb = timer.add_callback(functools.partial(func, *args, **kwargs))
# ...
# later
timer.remove_callback(cb)
backend_bases.Timer.add_callback
修改为返回 func 为了简化上面的用法(以前它返回None);这也允许将它用作装饰器。
新的API是仿效的 atexit.register
/ atexit.unregister
.
StemContainer
性能提升¶
StemContainer
对象现在可以存储 LineCollection
对象而不是 Line2D
绘制干线的对象 stem
. 这将大大提高显示和移动的性能 stem
阴谋。
这将成为matplotlib3.3中的默认行为。现在就使用它 use_line_collection 关键字参数 stem
可以设置为 True
::
ax.stem(..., use_line_collection=True)
可以从 LineCollection
使用 get_segements()
. 见 LineCollection
用于检索集合属性的其他方法的文档。
ColorbarBase
遗传¶
matplotlib.colorbar.ColorbarBase
is no longer a subclass of
cm.ScalarMappable
. This inheritance lead to a confusing situation
where the cm.ScalarMappable
passed to matplotlib.colorbar.Colorbar
(colorbar
) had a set_norm
method, as did the colorbar.
The colorbar is now purely a follower to the ScalarMappable
norm and
colormap, and the old inherited methods
set_norm
,
set_cmap
,
set_clim
are deprecated, as are
the getter versions of those calls. To set the norm associated with a
colorbar do colorbar.mappable.set_norm()
etc.
FreeType和libpng搜索路径¶
这个 MPLBASEDIRLIST
environment variables and basedirlist
entry in setup.cfg
have no effect anymore. Instead, if building in situations where FreeType or libpng are not in the compiler or linker's default path, set the standard environment variables CFLAGS
/LDFLAGS
在Linux或OSX上,或 CL
/LINK
在Windows上,指示相关路径。
有关详细信息,请参阅 安装指南 .
在同一调用中设置艺术家属性两次或更多¶
不推荐通过别名多次设置同一艺术家属性。以前,代码如下:
plt.plot([0, 1], c="red", color="blue")
会发出一个警告 c
和 color
是彼此的别名,只保留 color
夸克。此行为已被弃用;在将来的版本中,这将引发一个TypeError,类似于Python传递两次关键字参数时的行为:
plt.plot([0, 1], c="red", c="blue")
此警告由 normalize_kwargs
.
路径代码类型¶
Path code types like Path.MOVETO
are now np.uint8
instead of int
Path.STOP
, Path.MOVETO
, Path.LINETO
, Path.CURVE3
,
Path.CURVE4
and Path.CLOSEPOLY
are now of the type Path.code_type
(np.uint8
by default) instead of plain int
. This makes their type
match the array value type of the Path.codes
array.
matplotlibrc文件中的LaTeX代码¶
以前,rc文件密钥 pgf.preamble
和 text.latex.preamble
使用逗号作为分隔符进行分析。这将破坏有效的 Latex 代码,例如:
\usepackage[protrusion=true, expansion=false]{microtype}
解析被修改为将完整的行传递给LaTeX系统,保留所有逗号。从Python脚本中传递一个字符串列表仍然可以正常工作。传递包含非字符串的列表现在将失败,而不是将结果强制为字符串。
Axes.spy
¶
方法 Axes.spy
现在提出一个 TypeError
对于关键字参数 插值 和 线型 而不是默默地忽视他们。
此外, Axes.spy
间谍现在允许 程度 争论(到目前为止一直被忽视)。
一只虫子 Axes.spy(..., origin='lower')
是固定的。以前,这会翻转数据,但不会翻转y轴,从而导致轴标签和实际数据索引不匹配。现在, origin='lower' 翻转数据和y轴标签。
框线图记号法¶
这个 manage_xticks 参数 boxplot
和 bxp
已重命名(具有弃用期)为 manage_ticks ,以考虑到它根据 vert 参数。
什么时候? manage_ticks=True
(默认情况下),在设置轴限制、刻度和刻度标签时,这些方法现在尝试将以前绘制的框线图考虑在内。
MouseEvents¶
MouseEvents现在在它们的 str()
. 以前它们包含前缀“mplmouseevent”。
RGBA缓冲区返回类型¶
FigureCanvasAgg.buffer_rgba
和 RendererAgg.buffer_rgba
现在返回内存查看 buffer_rgba
方法现在允许直接访问呈现器的底层缓冲区(作为 (m, n, 4)
-而不是将数据复制到新的bytestring。这与Py2上的行为一致,其中返回了一个缓冲区对象。
matplotlib.font_manager.win32InstalledFonts
返回类型¶
matplotlib.font_manager.win32InstalledFonts
如果找不到字体,则返回空列表而不是无。
Axes.fmt_xdata
和 Axes.fmt_ydata
错误处理¶
以前,如果用户提供 Axes.fmt_xdata
或 Axes.fmt_ydata
引发一个 TypeError
(或将它们设置为不可调用),异常将被无提示地忽略,而是使用默认的格式化程序。现在不再是这样了;异常现在已经传播出去了。
弃用冗余 Tick
属性¶
这个 gridOn
, tick1On
, tick2On
, label1On
和 label2On
Tick
属性已被弃用。直接获取并设置底层艺术家的可见性,可用作 gridline
, tick1line
, tick2line
, label1
和 label2
属性。
这个 label
属性的别名 label1
,已被弃用。
依赖于设置上述可见性属性的子类需要更新;参见。 examples/api/skewt.py
.
不推荐将Line2D的drawstyle与linestyle一起传递¶
而不是 plt.plot(..., linestyle="steps--")
使用 plt.plot(..., linestyle="--", drawstyle="steps")
. ds
现在是的别名 drawstyle
.
rcParam更改¶
远离的¶
已删除以下已弃用的RCPARAM:
text.dvipnghack
nbagg.transparent
(使用)rcParams["figure.facecolor"]
(default:'white'
) 相反)plugins.directory
axes.hold
backend.qt4
和backend.qt5
(设置QT_API
环境变量)
已弃用¶
关联的验证器函数 rcsetup.validate_qt4
和 validate_qt5
被贬低。
这个 verbose.fileo
和 verbose.level
rcParams已被弃用。从Matplotlib的旧的自定义详细日志记录切换到stdlib日志记录之后,这些都没有任何效果 logging
模块。此外 rcsetup.validate_verbose
函数已弃用。
这个 text.latex.unicode
rcParam现在默认为 True
已弃用(即在Matplotlib的未来版本中,将始终支持unicode输入)。此外,底层实现现在使用 \usepackage[utf8]{{inputenc}}
而不是 \usepackage{{ucs}}\usepackage[utf8x]{{inputenc}}
.
异常更改¶
mpl_toolkits.axes_grid1.axes_size.GetExtentHelper
现在提出ValueError
对于无效的方向而不是KeyError
.- 以前,动画框架中的子进程失败将在
RuntimeError
或AValueError
取决于错误发生的时间。他们现在提高了subprocess.CalledProcessError
属性设置为异常类记录的属性。 - 在某些情况下,Axes方法(和pyplot函数)用于引发
RuntimeError
如果他们被一个data
kwarg和其他不匹配的参数。他们现在提高了TypeError
相反。 Axes.streamplot
不支持不规则网格x
和y
价值观。到目前为止,它总是默默地画出一个错误的结果。这已更改为引发ValueError
相反。- 这个
streamplot.Grid
类(streamplot代码在内部使用)也抛出ValueError
当不规则网格值传入时。
移除¶
已删除以下已弃用的API:
类和方法¶
Verbose
(替换为python日志库)artist.Artist.hitlist
(无替换)artist.Artist.is_figure_set
(使用)artist.figure is not None
相反)axis.Axis.unit_data
(使用)axis.Axis.units
相反)backend_bases.FigureCanvasBase.onRemove
(无替换)backend_bases.FigureManagerBase.show_popup
(这根本没用)backend_wx.SubplotToolWx
(无替换)backend_wx.Toolbar
(使用)backend_wx.NavigationToolbar2Wx
相反)cbook.align_iterators
(无替换)contour.ContourLabeler.get_real_label_width
(无替换)legend.Legend.draggable
(使用)legend.Legend.set_draggable()
相反)texmanager.TexManager.postscriptd
,texmanager.TexManager.pscnt
,texmanager.TexManager.make_ps
,texmanager.TexManager.get_ps_bbox
(无替代品)
争论¶
- 这个 fig 克瓦格
GridSpec.get_subplot_params
和GridSpecFromSubplotSpec.get_subplot_params
(使用参数 图形 相反) - 将“盒子强制”传递给
Axes.set_adjustable
(使用“box”代替) - 支持字符串'on'/'true'/'off'/'false'来表示
True
/False
(直接使用True
/False
相反)。以下功能受到影响: - 使用
pyplot.axes
用一个axes.Axes
类型参数(使用pyplot.sca
相反)
其他¶
已删除以下杂项API元素
svgfont支持(英寸
rcParams["svg.fonttype"]
(default:'path'
) )日志记录现在是用标准python完成的
logging
类库。matplotlib.verbose
以及命令行开关--verbose-LEVEL
已被删除。要控制日志输出,请使用:
import logging logger = logging.getLogger('matplotlib') logger.setLevel(logging.INFO) # configure log handling: Either include it into your ``logging`` hierarchy, # e.g. by configuring a root looger using ``logging.basicConfig()``, # or add a standalone handler to the matplotlib logger: logger.addHandler(logging.StreamHandler())
__version__numpy__
collections.CIRCLE_AREA_FACTOR
font_manager.USE_FONTCONFIG
font_manager.cachedir
matplotlib.mlab
清除¶
里面有很多代码 matplotlib.mlab
Matplotlib 2.2中不推荐使用的模块已被删除。请参见下面的列表:
mlab.exp_safe
(使用)numpy.exp
相反)mlab.amap
mlab.logspace
(使用)numpy.logspace
相反)mlab.rms_flat
mlab.l1norm
(使用)numpy.linalg.norm(a, ord=1)
相反)mlab.l2norm
(使用)numpy.linalg.norm(a, ord=2)
相反)mlab.norm_flat
(使用)numpy.linalg.norm(a.flat, ord=2)
相反)mlab.frange
(使用)numpy.arange
相反)mlab.identity
(使用)numpy.identity
相反)mlab.base_repr
mlab.binary_repr
mlab.ispower2
mlab.log2
(使用)numpy.log2
相反)mlab.isvector
mlab.movavg
mlab.safe_isinf
(使用)numpy.isinf
相反)mlab.safe_isnan
(使用)numpy.isnan
相反)mlab.cohere_pairs
(使用)scipy.signal.coherence
相反)mlab.entropy
(使用)scipy.stats.entropy
相反)mlab.normpdf
(使用)scipy.stats.norm.pdf
相反)mlab.find
(使用)np.nonzero(np.ravel(condition))
相反)mlab.longest_contiguous_ones
mlab.longest_ones
mlab.PCA
mlab.prctile
(使用)numpy.percentile
相反)mlab.prctile_rank
mlab.center_matrix
mlab.rk4
(使用)scipy.integrate.ode
相反)mlab.bivariate_normal
mlab.get_xyz_where
mlab.get_sparse_matrix
mlab.dist
(使用)numpy.hypot
相反)mlab.dist_point_to_segment
mlab.griddata
(使用)scipy.interpolate.griddata
)mlab.less_simple_linear_interpolation
(使用)numpy.interp
)mlab.slopes
mlab.stineman_interp
mlab.segments_intersect
mlab.fftsurr
mlab.offset_line
mlab.quad2cubic
mlab.vector_lengths
mlab.distances_along_curve
mlab.path_length
mlab.cross_from_above
mlab.cross_from_below
mlab.contiguous_regions
(使用)cbook.contiguous_regions
相反)mlab.is_closed_polygon
mlab.poly_between
mlab.poly_below
mlab.inside_poly
mlab.csv2rec
mlab.rec2csv
(使用)numpy.recarray.tofile
相反)mlab.rec2text
(使用)numpy.recarray.tofile
相反)mlab.rec_summarize
mlab.rec_join
mlab.recs_join
mlab.rec_groupby
mlab.rec_keep_fields
mlab.rec_drop_fields
mlab.rec_append_fields
mlab.csvformat_factory
mlab.get_formatd
mlab.FormatDatetime
(使用)datetime.datetime.strftime
相反)mlab.FormatDate
(使用)datetime.date.strftime
相反)mlab.FormatMillions
,mlab.FormatThousands
,mlab.FormatPercent
,mlab.FormatBool
,mlab.FormatInt
,mlab.FormatFloat
,mlab.FormatFormatStr
,mlab.FormatString
,mlab.FormatObj
mlab.donothing_callback
pylab
清除¶
里面有很多代码 matplotlib.mlab
Matplotlib 2.2中不推荐使用的模块已被删除。这意味着以下功能在中不再可用 pylab
模块:
amap
base_repr
binary_repr
bivariate_normal
center_matrix
csv2rec
(使用)numpy.recarray.tofile
相反)dist
(使用)numpy.hypot
相反)dist_point_to_segment
distances_along_curve
entropy
(使用)scipy.stats.entropy
相反)exp_safe
(使用)numpy.exp
相反)fftsurr
find
(使用)np.nonzero(np.ravel(condition))
相反)frange
(使用)numpy.arange
相反)get_sparse_matrix
get_xyz_where
griddata
(使用)scipy.interpolate.griddata
相反)identity
(使用)numpy.identity
相反)inside_poly
is_closed_polygon
ispower2
isvector
l1norm
(使用)numpy.linalg.norm(a, ord=1)
相反)l2norm
(使用)numpy.linalg.norm(a, ord=2)
相反)log2
(使用)numpy.log2
相反)longest_contiguous_ones
longest_ones
movavg
norm_flat
(使用)numpy.linalg.norm(a.flat, ord=2)
相反)normpdf
(使用)scipy.stats.norm.pdf
相反)path_length
poly_below
poly_between
prctile
(使用)numpy.percentile
相反)prctile_rank
rec2csv
(使用)numpy.recarray.tofile
相反)rec_append_fields
rec_drop_fields
rec_join
rk4
(使用)scipy.integrate.ode
相反)rms_flat
segments_intersect
slopes
stineman_interp
vector_lengths
mplot3d更改¶
禁用等宽轴¶
在3D轴上设置纵横比之前返回非感官结果(例如,参见 #1077 ). 打电话 ax.set_aspect('equal')
或 ax.set_aspect(num)
在一个3D轴上升起 NotImplementedError
.
Poly3DCollection.set_zsort
¶
Poly3DCollection.set_zsort
不再静默地忽略无效输入,或者 False
(总是坏掉的)。经过 True
意思是说 "average"
被贬低。
测试¶
这个 --no-network
旗到 tests.py
已删除(不再需要访问internet的测试)。如果要禁用新旧版本Matplotlib的internet访问,请使用 tests.py -m 'not network'
(现在是禁止操作)。
图像比较测试装饰器现在跳过(而不是xfail)不可编译格式的测试。受影响的装修工人 image_comparison
和 check_figures_equal
. 弃用的 ImageComparisonTest
类也发生了变化。
依赖关系更改¶
NumPy¶
Matplotlib 3.1现在需要NumPy>=1.11。
幽灵脚本¶
对Ghostscript8.60(2007年发布)的支持已被删除。支持ghostscript的最旧版本现在是9.0(2010年发布)。
数学文本更改¶
- 在诸如
"$1~2$"
,mathtext现在将tilde解释为一个空格,与TeX一致(这以前是一个解析错误)。
贬抑¶
- 这个
\stackrel
mathtext命令已被弃用(它的行为与LaTeX的不同)\stackrel
. 要堆叠两个mathtext表达式,请使用\genfrac{{left-delim}}{{right-delim}}{{fraction-bar-thickness}}{{}}{{top}}{{bottom}}
. - 这个
\mathcircled
mathtext命令(不是真正的TeX命令)已弃用。直接使用unicode字符(例如。"\N{{CIRCLED LATIN CAPITAL LETTER A}}"
或"\u24b6"
相反。 - 设置支持
rcParams["mathtext.default"]
(default:'it'
) 不推荐使用带圆圈的。
签名反对¶
不赞成使用以下与签名相关的行为:
- 这个 破折号 关键字参数
Axes.text()
. 考虑使用Axes.annotate()
相反。 - 将(n,1)形错误数组传递给
Axes.errorbar()
,但没有记录,也不适用于n = 2
. 传递一个一维数组。 - 这个 框架 克瓦格
savefig
以及rcParams["savefig.frameon"]
rcParam公司。模仿frameon = False
,集合 脸色 完全透明 ("none"
或(0, 0, 0, 0)
) - 将非1D(通常是(n,1)形状的输入传递给
Axes.pie
. 传递一个一维数组。 - 这个
TextPath
构造函数用于静默删除忽略的参数;此行为已弃用。 - 这个 用语 参数
TextToPath.get_text_path
已弃用并折叠到 ISMAX 参数,它现在可以接受值False
,True
和"TeX"
,与其他低级文本处理功能一致。 - 经过
'normal'
到axes.Axes.axis()
已弃用,请使用ax.axis('auto')
相反。 - 路过 块 的参数
pyplot.show
位置不推荐使用;它应该通过关键字传递。 - 使用nbagg后端时,
pyplot.show
用于静默接受和忽略位置参数和关键字参数的所有组合。此行为已弃用。 - 未使用的 形状 和 伊姆林 参数到
Axes.imshow
已弃用。为了避免触发弃用警告,将 滤波器范数 , 菲尔特拉德 , 重采样 和 url 参数应通过关键字传递。 - 这个 interp_at_native 参数到
BboxImage
自Matplotlib 2.0之后就没有任何效果了,它已被弃用。 - 所有参数
cbook.deprecated
装饰工和cbook.warn_deprecated
函数,除了第一个函数(不推荐使用的版本)现在只使用关键字。这样做的目的是避免意外地在“name”(或“alternative”)参数时设置“message”参数,因为这在过去多次发生。 - 的论点
matplotlib.testing.compare.calculate_rms
已从重命名expectedImage, actualImage
,至expected_image, actual_image
. - 将位置参数传递给
Axis.set_ticklabels
超过 标签标签 它本身没有任何效果,对它们的支持也被弃用。 - 经过
shade=None
到plot_surface
已弃用。这是一个意外的实现细节,其语义与shade=False
. 请改用后一种代码。 matplotlib.ticker.MaxNLocator
及其 set_params 方法将对未知关键字参数发出警告,而不是静默地忽略它们。将来的版本将引发错误。
参数名称的更改¶
这个 arg 参数到
matplotlib.use
已重命名为 后端 .这只会影响将该参数设置为关键字参数的情况。作为位置参数的通用用法模式
matplotlib.use('Qt5Agg')
不受影响。这个 赋范的 参数到
Axes.hist2d
已重命名为 密度 .这个 s 参数到
Annotation
(和间接Axes.annotate
)已重命名为 text .这个 容忍度 参数到
bezier.find_bezier_t_intersecting_with_closedpath
,bezier.split_bezier_intersecting_with_closedpath
,bezier.find_r_to_boundary_of_closedpath
,bezier.split_path_inout
和bezier.check_if_parallel
已重命名为 容忍 .
在每种情况下,旧的参数名仍然受支持(不能与新名称同时使用),但是matplotlib3.3将不再支持它。
类/方法/属性不推荐使用¶
支持不提供 GraphicsContextBase.set_hatch_color
方法已弃用。我们建议定制后端 GraphicsContext
类继承自 GraphicsContextBase
,至少为所有必需的方法提供存根。
spine.Spine.is_frame_like
自2009年添加以来,它就没有在代码库中使用过。
axis3d.Axis.get_tick_positions
它从未在内部使用过,在2D Axis类上没有等效的方法,尽管名称相似,但它的行为与2D Axis完全不同
axis.Axis.get_ticks_position
方法。.backend_pgf.LatexManagerFactory
mpl_toolkits.axisartist.axislines.SimpleChainedObjects
mpl_toolkits.Axes.AxisDict
内部助手函数¶
checkdep_dvipng
checkdep_ghostscript
checkdep_pdftops
checkdep_inkscape
ticker.decade_up
ticker.decade_down
cbook.dedent
docstring.Appender
docstring.dedent
docstring.copy_dedent
使用标准库的docstring操作工具,例如 inspect.cleandoc
和 inspect.getdoc
.
matplotlib.scale.get_scale_docs()
matplotlib.pyplot.get_scale_docs()
它们被认为是内部的,将在将来的版本中从公共API中删除。
projections.process_projection_requirements
backend_ps.PsBackendHelper
backend_ps.ps_backend_helper
,cbook.iterable
cbook.get_label
cbook.safezip
手动检查输入的长度,或者依靠NumPy来完成。cbook.is_hashable
使用isinstance(..., collections.abc.Hashable)
相反。- 这个
.backend_bases.RendererBase.strip_math
. 使用cbook.strip_math
相反。
作为的公共API的一部分公开的多个内部函数 mpl_toolkits.mplot3d
已弃用,
mpl_toolkits.mplot3d.art3d
mpl_toolkits.mplot3d.art3d.norm_angle
mpl_toolkits.mplot3d.art3d.norm_text_angle
mpl_toolkits.mplot3d.art3d.path_to_3d_segment
mpl_toolkits.mplot3d.art3d.paths_to_3d_segments
mpl_toolkits.mplot3d.art3d.path_to_3d_segment_with_codes
mpl_toolkits.mplot3d.art3d.paths_to_3d_segments_with_codes
mpl_toolkits.mplot3d.art3d.get_patch_verts
mpl_toolkits.mplot3d.art3d.get_colors
mpl_toolkits.mplot3d.art3d.zalpha
mpl_toolkits.mplot3d.proj3d
mpl_toolkits.mplot3d.proj3d.line2d
mpl_toolkits.mplot3d.proj3d.line2d_dist
mpl_toolkits.mplot3d.proj3d.line2d_seg_dist
mpl_toolkits.mplot3d.proj3d.mod
mpl_toolkits.mplot3d.proj3d.proj_transform_vec
mpl_toolkits.mplot3d.proj3d.proj_transform_vec_clip
mpl_toolkits.mplot3d.proj3d.vec_pad_ones
mpl_toolkits.mplot3d.proj3d.proj_trans_clip_points
如果您的项目依赖于这些功能,请考虑销售它们。
字体处理¶
backend_pdf.RendererPdf.afm_font_cache
backend_ps.RendererPS.afmfontd
font_manager.OSXInstalledFonts
.TextToPath.glyph_to_path
(改为打电话font.get_path()
并手动变换路径。)
Axes3D公司¶
使用 axes3d.Axes3D.xaxis
, axes3d.Axes3D.yaxis
和 axes3d.Axes3D.zaxis
相反。
测试¶
matplotlib.testing.decorators.switch_backend
decorator
测试函数应使用 pytest.mark.backend
,标记将由 matplotlib.testing.conftest.mpl_test_settings
固定装置。
颤抖¶
.color
属性Quiver
物体
相反,使用 Collection
) get_facecolor
方法。请注意,设置为 .color
属性没有更新箭袋艺术家,而调用 set_facecolor
做。
GUI/后端详细信息¶
.get_py2exe_datafiles
.tk_window_focus
backend_gtk3.FileChooserDialog
backend_gtk3.NavigationToolbar2GTK3.get_filechooser
backend_gtk3.SaveFigureGTK3.get_filechooser
NavigationToolbar2QT.adj_window
属性。这是未使用的,而且总是None
.backend_wx.IDLE_DELAY
全局变量这是未使用的,只与现在删除的wx“idling”代码相关(请注意,由于它是模块级全局变量,访问它时不会发出任何弃用警告)。mlab.demean
backend_gtk3cairo.FigureCanvasGTK3Cairo
,backend_wx.debug_on_error
,backend_wx.fake_stderr
,backend_wx.raise_msg_to_str
,backend_wx.MenuButtonWx
,backend_wx.PrintoutWx
,matplotlib.backends.qt_editor.formlayout
模块
这个模块是官方的一个自动出售的修改版本 formlayout 模块在PyPI上可用。如果需要,请单独安装该模块。
GraphicsContextPS.shouldstroke
变换/缩放¶
LogTransformBase
Log10Transform
Log2Transform
,NaturalLogTransformLog
InvertedLogTransformBase
InvertedLog10Transform
InvertedLog2Transform
InvertedNaturalLogTransform
中定义的这些类 matplotlib.scale
已弃用。作为替代,请使用 LogTransform
和 InvertedLogTransform
类,其构造函数采用 base 争论。
定位器/格式化程序¶
OldScalarFormatter.pprint_val
ScalarFormatter.pprint_val
LogFormatter.pprint_val
这些帮助器方法在格式化程序类之间没有一致的签名。
路径工具¶
path.get_paths_extents
使用 get_path_collection_extents
相反。
.Path.has_nonfinite
属性
使用 not np.isfinite(path.vertices).all()
相反。
bezier.find_r_to_boundary_of_closedpath
函数已弃用
它总是返回None而不是请求的radius。
文本¶
text.TextWithDash
Text.is_math_text
TextPath.is_math_text
TextPath.text_get_vertices_codes
(作为替代方案,构建一个新的TextPath
对象。
未使用的属性¶
NavigationToolbar2QT.buttons
Line2D.verticalOffset
Quiver.keytext
Quiver.keyvec
SpanSelector.buttonDown
这些是未使用的,从未更新。
Sphinx 扩展¶
matplotlib.sphinxext.mathmpl.math_directive
matplotlib.sphinxext.plot_directive.plot_directive
这是因为 matplotlib.sphinxext.mathmpl
和 matplotlib.sphinxext.plot_directive
接口已从(Sphinx)不推荐使用的基于函数的接口更改为基于类的接口;这不应影响最终用户。
mpl_toolkits.axisartist.axis_artist.UnimplementedException
环境变量¶
- 这个
MATPLOTLIBDATA
环境变量
未担保¶
以下API元素未被弃用:
- 这个 obj_type 克沃格
cbook.deprecated
装饰者。 - xmin , xmax 夸克到
Axes.set_xlim
和 ymin , ymax 夸克到Axes.set_ylim
新特点¶
Text
现在有一个 c
的别名 color
属性¶
为了与…保持一致 Line2D
, the Text
班级获得了 c
的别名 color
财产。例如,现在可以写:
ax.text(.5, .5, "foo", c="red")
Cn
colors now support n>=10
¶
现在可以使用 Cn
语法,例如:
plt.plot([1, 2], color="C11")
现在使用循环中的第12种颜色。
请注意,以前的构造,例如:
plt.plot([1, 2], "C11")
会被解释为使用颜色的请求 C1
和记号笔 1
(一个“倒Y”)。要获得这样的图,现在应该使用:
plt.plot([1, 2], "1C1")
(以便将第一个“1”正确解释为标记规范),或者,更明确地说:
plt.plot([1, 2], marker="1", color="C1")
新的 Formatter.format_ticks
方法¶
这个 Formatter
班级获得了一个新的 format_ticks
方法,该方法将所有刻度位置的列表作为单个参数,并返回所有格式化值的列表。它由轴刻度处理代码调用,默认情况下,是第一次调用 set_locs
所有地点,然后反复呼叫 __call__
对于每个位置。
勾选先前执行此序列的代码库中的处理代码 (set_locs
然后重复 __call__
)已更新使用 format_ticks
.
format_ticks
将被重写 Formatter
子类,其刻度值的格式取决于其他刻度值,例如 ConciseDateFormatter
.
在pcolorfast中添加了对RGB(A)图像的支持¶
如果X和Y规范允许图像或pcolorimage渲染,pcolorfast现在接受3D图像(RGB或RGBA)数组;更一般的四边形渲染仍然不支持这些数组
无效输入¶
将无效位置传递给 legend
和 table
用于回退到默认位置。此行为已弃用,并将在将来的版本中引发异常。
offsetbox.AnchoredText
无法处理 水平信号 或 垂直对准 夸克,过去总是用警告来忽略它们。此行为已弃用,并将在将来的版本中引发异常。
通过小于1或大于10的台阶 MaxNLocator
用于导致未定义的行为。它现在抛出一个 ValueError
.
(私人)的签名 Axis._update_ticks
已更改为不再将呈现器作为参数(该参数未使用)。