matplotlib.cbook#

实用函数和类的集合。最初,许多(但不是全部)来自 Python Cookbook——因此得名 cbook。

这个模块可以安全地从 Matplotlib 中的任何地方导入;它仅在运行时导入 Matplotlib。

matplotlib.cbook。CallbackRegistry ( exception_handler=<function _exception_printer> , * , signals=None ) [source] #

基地:object

处理一组信号和回调的注册、处理、阻塞和断开连接:

>>> def oneat(x):
...    print('eat', x)
>>> def ondrink(x):
...    print('drink', x)
>>> from matplotlib.cbook import CallbackRegistry
>>> callbacks = CallbackRegistry()
>>> id_eat = callbacks.connect('eat', oneat)
>>> id_drink = callbacks.connect('drink', ondrink)
>>> callbacks.process('drink', 123)
drink 123
>>> callbacks.process('eat', 456)
eat 456
>>> callbacks.process('be merry', 456)   # nothing will be called
>>> callbacks.disconnect(id_eat)
>>> callbacks.process('eat', 456)        # nothing will be called
>>> with callbacks.blocked(signal='drink'):
...     callbacks.process('drink', 123)  # nothing will be called
>>> callbacks.process('drink', 123)
drink 123

在实践中,当不再需要所有回调时,应始终断开所有回调,以避免悬空引用(从而导致内存泄漏)。然而,Matplotlib 中的实际代码很少这样做,并且由于其设计,放置这种代码相当困难。为了解决这个问题并防止此类内存泄漏,我们只存储对绑定方法的弱引用,因此当目标对象需要终止时,CallbackRegistry 不会使其保持活动状态。

参数
exception_handler可调用,可选

如果不是 None,则exception_handler必须是一个接受 Exception单个参数的函数。它会Exception 在 期间被回调调用CallbackRegistry.process,并且可以重新引发异常或以其他方式处理它。

traceback.print_exc如果交互式事件循环正在运行,默认处理程序会打印异常(带有);如果没有交互式事件循环正在运行,它会重新引发异常。

信号列表,可选

如果不是 None,signals是该注册表处理的信号列表:尝试到process或到connect不在列表中的信号会抛出ValueError. 默认值 None 不限制处理的信号。

阻塞( * , signal = None ) [来源] #

阻止回调信号被处理。

一个上下文管理器,用于临时阻止/禁用回调信号被注册的侦听器处理。

参数
信号str,可选

要阻塞的回调信号。默认是阻止所有信号。

连接(信号,函数) [来源] #

生成信号信号时要调用的寄存器func

断开连接( cid ) [来源] #

断开使用回调 id cid注册的回调。

如果这样的回调不存在,则不会引发错误。

进程( s , * args , ** kwargs ) [来源] #

处理信号s

在s上注册接收回调的所有函数都将使用*args和调用**kwargs

matplotlib.cbook。石斑鱼( init = () ) [来源] #

基地:object

一个不相交的数据结构。

可以使用 连接对象join(),使用 测试连通性joined(),并且可以使用对象作为迭代器来检索所有不相交的集合。

被连接的对象必须是可散列的和弱引用的。

例子

>>> from matplotlib.cbook import Grouper
>>> class Foo:
...     def __init__(self, s):
...         self.s = s
...     def __repr__(self):
...         return self.s
...
>>> a, b, c, d, e, f = [Foo(x) for x in 'abcdef']
>>> grp = Grouper()
>>> grp.join(a, b)
>>> grp.join(b, c)
>>> grp.join(d, e)
>>> list(grp)
[[a, b, c], [d, e]]
>>> grp.joined(a, b)
True
>>> grp.joined(a, c)
True
>>> grp.joined(a, d)
False
清洁( ) [来源] #

从字典中清除死的弱引用。

get_siblings ( a ) [来源] #

返回与a连接的所有项目,包括它自己。

加入( a , * args ) [来源] #

将给定的参数加入到同一个集合中。接受一个或多个参数。

加入( a , b ) [来源] #

返回ab是否是同一集合的成员。

删除( a ) [来源] #
matplotlib.cbook。GrouperView ( grouper ) [来源] #

基地:object

不可变视图Grouper

清洁( ) [来源] #

[已弃用] 从字典中清除已死的弱引用。

笔记

自 3.6 版起已弃用。

get_siblings ( a ) [来源] #

返回与a连接的所有项目,包括它自己。

加入( a , * args ) [来源] #

[已弃用] 将给定的参数加入到同一个集合中。接受一个或多个参数。

笔记

自 3.6 版起已弃用。

加入( a , b ) [来源] #

返回ab是否是同一集合的成员。

删除( a ) [来源] #

[已弃用]

笔记

自 3.6 版起已弃用:

matplotlib.cbook。堆栈默认=[来源] #

基地:object

带有可移动光标的元素堆栈。

在网络浏览器中模拟主页/后退/前进。

返回( ) [来源] #

将位置向后移动并返回当前元素。

气泡( o ) [来源] #

将o的所有引用提升到堆栈顶部,并将其返回。

提高
值错误

如果o不在堆栈中。

清除( ) [来源] #

清空堆栈。

( ) [来源] #

返回栈是否为空。

forward ( ) [来源] #

向前移动位置并返回当前元素。

主页( ) [来源] #

将第一个元素压入栈顶。

返回第一个元素。

( o ) [来源] #

将o推入当前位置的堆栈。丢弃所有后面的元素。

o返回。

移除( o ) [来源] #

从堆栈中删除o 。

提高
值错误

如果o不在堆栈中。

matplotlib.cbook。boxplot_stats ( X , whis = 1.5 , bootstrap = None , labels = None , autorange = False ) [来源] #

返回用于绘制一系列箱线图和须线图的统计字典列表,使用bxp.

参数
X类数组

将在箱线图中表示的数据。应该有 2 个或更少的维度。

whis float 或 (float, float),默认值:1.5

胡须的位置。

如果是浮点数,则下须线位于上方的最低基准处 ,而上方的须位于下方的最高基准处 ,其中 Q1 和 Q3 是第一和第三四分位数。的默认值对应于 Tukey 对箱线图的原始定义。Q1 - whis*(Q3-Q1)Q3 + whis*(Q3-Q1)whis = 1.5

如果是一对浮点数,它们表示绘制胡须的百分位数(例如,(5, 95))。特别是,将其设置为 (0, 100) 会导致胡须覆盖整个数据范围。

在边缘情况下,如果autorange为 True, whis会自动设置为 (0, 100)(覆盖整个数据范围)。Q1 == Q3

除了胡须,数据被认为是异常值,并被绘制为单个点。

引导int,可选

中位数周围的置信区间应自举的次数(百分位数法)。

标签类数组,可选

每个数据集的标签。长度必须与X的尺寸兼容。

自动范围布尔,可选(假)

True和数据分布使得第 25 个和第 75 个百分位数相等时,whis设置为 (0, 100) 以使晶须末端位于数据的最小值和最大值处。

返回
字典列表

包含每列数据的结果的字典列表。每个字典的键如下:

钥匙

值 描述

标签

箱线图的刻度标签

意思是

算术平均值

医学

第 50 个百分位

q1

第一个四分位数(第 25 个百分位数)

q3

第三四分位数(第 75 个百分位数)

智商

四分位距

西洛

中位数附近的下凹口

慈济

中位数周围的上切迹

惠斯洛

下须的末端

嗖嗖嗖嗖

上晶须的末端

传单

异常值

笔记

置信区间的非自举方法使用基于高斯的渐近近似:

\[\mathrm{med} \pm 1.57 \times \frac{\mathrm{iqr}}{\sqrt{N}}\]

一般方法来自:McGill, R.、Tukey, JW 和 Larsen, WA (1978)“箱线图的变化”,美国统计学家,32:12-16。

matplotlib.cbook。contiguous_regions (掩码) [来源] #

返回一个 (ind0, ind1) 的列表,使得它mask[ind0:ind1].all()是 True 并且我们覆盖了所有这些区域。

matplotlib.cbook。delete_masked_points ( * args ) [来源] #

在一组参数中查找所有掩码和/或非有限点,并返回仅剩余未掩码点的参数。

参数可以属于 5 个类别中的任何一个:

  1. 一维掩码阵列

  2. 一维ndarrays

  3. 具有多于一维的ndarrays

  4. 其他非字符串迭代

  5. 还要别的吗

第一个参数必须属于前四个类别之一;任何长度与第一个参数不同的参数(因此属于第 5 类的任何参数)都将被原封不动地传递。

掩码是从类别 1、2 和 4 中所有正确长度的参数中获得的;如果在掩码数组中被掩码,或者它是 nan 或 inf,则该点是坏的。numpy.isfinite 如果不产生布尔数组,则不会尝试从类别 2、3 和 4 中提取掩码。

在删除与任何参数中的掩码相对应的点或行后,所有未按原样传递的输入参数都将作为 ndarrays 返回。

这个函数的一个非常简单的版本最初是作为 Axes.scatter() 的助手编写的。

matplotlib.cbook。file_requires_unicode ( x ) [来源] #

返回给定的可写类文件对象是否需要向其写入 Unicode。

matplotlib.cbook。flatten ( seq , scalarp=<function is_scalar_or_string> ) [source] #

返回扁平嵌套容器的生成器。

例如:

>>> from matplotlib.cbook import flatten
>>> l = (('John', ['Hunter']), (1, 23), [[([42, (5, 23)], )]])
>>> print(list(flatten(l)))
['John', 'Hunter', 1, 23, 42, 5, 23]

作者:Holger Krekel 和 Luther Blissett 的合成来自:https ://code.activestate.com/recipes/121294/ 和 食谱中的食谱 1.12

matplotlib.cbook。get_sample_data ( fname , asfileobj = True , * , np_load = False ) [来源] #

返回示例数据文件。fname是相对于 mpl-data/sample_data目录的路径。如果asfileobj返回一个文件对象,否则只是True 一个文件路径。

示例数据文件存储在 Matplotlib 包中的“mpl-data/sample_data”目录中。

如果文件名以 .gz 结尾,则文件被隐式解压缩。如果文件名以 .npy 或 .npz 结尾,asfileobj为 True,np_load为 True,则文件以numpy.load. np_load当前默认为 False,但在未来版本中将默认为 True。

matplotlib.cbook。index_of ( y ) [来源] #

为给定的y创建合理的 x 值的辅助函数。

如果未明确给出 x 值,则用于绘制 (x, y)。

首先尝试y.index(假设y是 a pandas.Series),如果失败,使用range(len(y)).

这将在未来扩展以处理更多类型的标记数据。

参数
y浮点数或类似数组
返回
x, y数组

要绘制的 x 和 y 值。

matplotlib.cbook。is_math_text ( s ) [来源] #

返回字符串s是否包含数学表达式。

这是通过检查s是否包含偶数个非转义美元符号来完成的。

matplotlib.cbook。is_scalar_or_string ( val ) [来源] #

返回给定对象是标量还是类似字符串。

matplotlib.cbook。is_writable_file_like ( obj ) [来源] #

返回obj是否看起来像具有write方法的文件对象。

matplotlib.cbook。ls_mapper = {'-': 'solid', '--': 'dashed', '-.': 'dashdot', ':': 'dotted'} #

将线条样式的短代码映射到后端使用的全名。

matplotlib.cbook。ls_mapper_r = {'dashdot': '-.', 'dashed': '--', 'dotted': ':', 'solid': '-'} #

将后端使用的线条样式的全名映射到它们的短代码。

matplotlib.cbook。maxdict ( maxsize ) [来源] #

基地:dict

[已弃用] 具有最大大小的字典。

笔记

这并不会覆盖所有相关的方法来限制大小,只是__setitem__,因此请谨慎使用。

3.6 版后已弃用:改用 functools.lru_cache。

matplotlib.cbook。normalize_kwargs ( kw , alias_mapping = None ) [来源] #

帮助函数标准化 kwarg 输入。

参数
kw dict 或 None

关键字参数的字典。明确支持 None 并将其视为空字典,以支持具有可选参数形式的函数props=None

alias_mapping dict 或 Artist 子类或 Artist 实例,可选

规范名称与别名列表之间的映射,按优先级从低到高的顺序排列。

如果规范值不在列表中,则假定它具有最高优先级。

如果传递了 Artist 子类或实例,请使用其属性别名映射。

提高
类型错误

如果将无效参数/关键字参数传递给可调用对象,则匹配 Python 引发的内容。

matplotlib.cbook。open_file_cm ( path_or_file , mode = 'r' , encoding = None ) [source] #

传递文件对象和上下文管理路径之类的。

matplotlib.cbook。print_cycles ( objects , outstream=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'> , show_progress=False ) [source] #

打印给定对象中循环引用的循环。

gc.garbage传入以查找阻止某些对象被垃圾收集的循环通常很有用。

参数
对象

要在其中查找循环的对象列表。

外流

用于输出的流。

show_progress布尔值

如果为 True,则打印找到的对象数量。

matplotlib.cbook。pts_to_midstep ( x , * args ) [来源] #

将连续线转换为中间步骤。

给定一组N点转换为2N点,这些点在线性连接时给出一个阶跃函数,该函数在间隔中间改变值。

参数
x数组

台阶的 x 位置。可能是空的。

y1, ..., yp数组

y 数组要变成步骤;all 的长度必须与 x.

返回
大批

x 和 y 值以与输入相同的顺序转换为步长;可以解压为. 如果输入是长度,则这些数组中的每一个都是长度。x_out, y1_out, ..., yp_outN2N

例子

>>> x_s, y1_s, y2_s = pts_to_midstep(x, y1, y2)
matplotlib.cbook。pts_to_poststep ( x , * args ) [来源] #

将连续线转换为后期步骤。

给定一组N点转换为点,当它们线性连接时,会给出一个阶跃函数,该函数在间隔结束时改变值。2N + 1

参数
x数组

台阶的 x 位置。可能是空的。

y1, ..., yp数组

y 数组要变成步骤;all 的长度必须与x.

返回
大批

x 和 y 值以与输入相同的顺序转换为步长;可以解压为. 如果输入是长度,则这些数组中的每一个都是长度。对于 ,长度将为 0。x_out, y1_out, ..., yp_outN2N + 1N=0

例子

>>> x_s, y1_s, y2_s = pts_to_poststep(x, y1, y2)
matplotlib.cbook。pts_to_prestep ( x , * args ) [来源] #

将连续线转换为前置步骤。

给定一组N点,转换为点,当它们线性连接时,会给出一个阶跃函数,该函数会在间隔开始时改变值。2N - 1

参数
x数组

台阶的 x 位置。可能是空的。

y1, ..., yp数组

y 数组要变成步骤;all 的长度必须与x.

返回
大批

x 和 y 值以与输入相同的顺序转换为步长;可以解压为. 如果输入是长度,则这些数组中的每一个都是长度。对于 ,长度将为 0。x_out, y1_out, ..., yp_outN2N + 1N=0

例子

>>> x_s, y1_s, y2_s = pts_to_prestep(x, y1, y2)
matplotlib.cbook。report_memory ( i = 0 ) [来源] #

[弃用] 返回进程消耗的内存。

笔记

3.5 版后已弃用:改用 psutil.virtual_memory。

matplotlib.cbook。safe_first_element ( obj ) [来源] #

返回obj中的第一个元素。

这是获取第一个元素的一种与类型无关的方式,同时支持索引访问和迭代器协议。

matplotlib.cbook。safe_masked_invalid ( x , copy = False ) [来源] #
matplotlib.cbook。sanitize_sequence (数据) [来源] #

将 dictview 对象转换为列表。其他输入保持不变。

matplotlib.cbook。silent_list ( type , seq = None ) [source] #

基地:list

一个简短的列表repr()

这意味着用于艺术家的同质列表,这样他们就不会导致冗长的、无意义的输出。

代替

[<matplotlib.lines.Line2D object at 0x7f5749fed3c8>,
 <matplotlib.lines.Line2D object at 0x7f5749fed4e0>,
 <matplotlib.lines.Line2D object at 0x7f5758016550>]

一个会得到

<a list of 3 Line2D objects>

如果self.type为 None,则从列表中的第一项(如果有)中获取类型名称。

matplotlib.cbook。simple_linear_interpolation ( a , steps ) [source] #

对具有原始点对之间的点的数组进行重新采样。steps - 1

沿着a 的每一列,在每个原始值之间引入点;这些值是线性插值的。(steps - 1)

参数
一个数组,形状 (n, ...)
返回
大批

形状((n - 1) * steps + 1, ...)

matplotlib.cbook。strip_math ( s ) [来源] #

从 mathtext 中删除乳胶格式。

仅处理完全数学和完全非数学字符串。

matplotlib.cbook。to_filehandle ( fname , flag = 'r' , return_opened = False , encoding = None ) [source] #

将路径转换为打开的文件句柄或传递类似文件的对象。

考虑open_file_cm改用,因为它允许更轻松地正确关闭新创建的文件对象。

参数
fname str 或 path-like 或 file-like

如果str或,则使用flagencodingos.PathLike指定的标志打开文件。如果是类文件对象,则通过它。

标志str,默认值:'r'

fname为or 时作为mode参数传递;如果fname是类似文件的,则忽略。openstros.PathLike

return_opened布尔值,默认值:False

如果为 True,则返回文件对象和一个布尔值,指示这是否是一个新文件(调用者需要关闭)。如果为 False,则仅返回新文件。

编码str 或无,默认值:无

fname为or 时作为mode参数传递;如果fname是类似文件的,则忽略。openstros.PathLike

返回
fh类文件
打开布尔

仅当return_opened为 True时才返回打开的。

matplotlib.cbook。violin_stats ( X , method , points = 100 , quantiles = None ) [source] #

返回可用于绘制一系列小提琴图的数据字典列表。

请参阅以下Returns部分以查看字典所需的键。

用户可以跳过此功能,将一组用户定义的具有相同键的字典传递给,violinplot而不是使用 Matplotlib 进行计算。有关字典中必须存在的键,请参阅下面的Returns部分。

参数
X类数组

将用于产生高斯核密度估计的样本数据。必须有 2 个或更少的维度。

方法可调用

用于计算每列数据的核密度估计值的方法。当调用 via 时,它应该返回一个 KDE 值的向量,该向量以 coords 中指定的值进行评估。method(v, coords)

积分整数,默认值:100

定义用于评估每个高斯核密度估计的点数。

分位数数组,默认值:无

为每列数据定义(如果不是无)间隔 [0, 1] 中的浮点数列表,它表示将为该数据列呈现的分位数。必须有 2 个或更少的维度。一维数组将被视为包含它们的单例列表。

返回
字典列表

包含每列数据的结果的字典列表。字典至少包含以下内容:

  • coords:标量列表,其中包含评估此特定核密度估计的坐标。

  • vals:标量列表,其中包含coords中给定的每个坐标处的核密度估计值。

  • mean:该列数据的平均值。

  • 中位数:该列数据的中位数。

  • min:该列数据的最小值。

  • max:该列数据的最大值。

  • 分位数:该数据列的分位数值。