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 不限制处理的信号。
- 类 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
- 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 个类别中的任何一个:
一维掩码阵列
一维ndarrays
具有多于一维的ndarrays
其他非字符串迭代
还要别的吗
第一个参数必须属于前四个类别之一;任何长度与第一个参数不同的参数(因此属于第 5 类的任何参数)都将被原封不动地传递。
掩码是从类别 1、2 和 4 中所有正确长度的参数中获得的;如果在掩码数组中被掩码,或者它是 nan 或 inf,则该点是坏的。
numpy.isfinite
如果不产生布尔数组,则不会尝试从类别 2、3 和 4 中提取掩码。在删除与任何参数中的掩码相对应的点或行后,所有未按原样传递的输入参数都将作为 ndarrays 返回。
这个函数的一个非常简单的版本最初是作为 Axes.scatter() 的助手编写的。
- 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是 apandas.Series
),如果失败,使用range(len(y))
.这将在未来扩展以处理更多类型的标记数据。
- 参数:
- y浮点数或类似数组
- 返回:
- x, y数组
要绘制的 x 和 y 值。
- 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_out
N
2N
例子
>>> 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_out
N
2N + 1
N=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_out
N
2N + 1
N=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。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。to_filehandle ( fname , flag = 'r' , return_opened = False , encoding = None ) [source] #
将路径转换为打开的文件句柄或传递类似文件的对象。
考虑
open_file_cm
改用,因为它允许更轻松地正确关闭新创建的文件对象。- 参数:
- fname str 或 path-like 或 file-like
如果
str
或,则使用flag和encodingos.PathLike
指定的标志打开文件。如果是类文件对象,则通过它。- 标志str,默认值:'r'
当fname为or 时作为mode参数传递;如果fname是类似文件的,则忽略。
open
str
os.PathLike
- return_opened布尔值,默认值:False
如果为 True,则返回文件对象和一个布尔值,指示这是否是一个新文件(调用者需要关闭)。如果为 False,则仅返回新文件。
- 编码str 或无,默认值:无
当fname为or 时作为mode参数传递;如果fname是类似文件的,则忽略。
open
str
os.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:该列数据的最大值。
分位数:该数据列的分位数值。