Matplotlib is hiring a Research Software Engineering Fellow! See discourse for details. Apply by January 3, 2020

Version 3.1.1
matplotlib
Fork me on GitHub

目录

Related Topics

cbook

matplotlib.cbook

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

此模块可以安全地从matplotlib内的任何位置导入;它仅在运行时导入matplotlib。

class matplotlib.cbook.Bunch(**kwargs)[源代码]

基类:types.SimpleNamespace

3.0 版后已移除: bucket类在matplotlib 3.0中被弃用,将在3.2中删除。改用types.simplenamespace。

通常我们只想把一堆东西收集在一起,给每一个项目命名;一本字典就可以了,但是一个小的什么也不做的类更容易用,更漂亮。每当您想分组几个变量时:

>>> point = Bunch(datum=2, squared=4, coord=12)
>>> point.datum
class matplotlib.cbook.CallbackRegistry(exception_handler=<function _exception_printer>)[源代码]

基类: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

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

参数:
exception_handler : 可调用,可选

如果提供,必须有签名:

def handler(exc: Exception) -> None:

如果没有,将使用任何 Exception 回调引发的子类 CallbackRegistry.process . 处理程序可以使用异常,也可以重新引发异常。

可调用的必须是可酸洗的。

默认处理程序为:

def h(exc):
    traceback.print_exc()
connect(s, func)[源代码]

寄存器 func 当信号发出时被呼叫 s 是生成的。

disconnect(cid)[源代码]

断开使用回调ID注册的回调 cid .

process(s, *args, **kwargs)[源代码]

过程信号 s .

注册接收回调的所有函数 s 将与呼叫 *args**kwargs .

class matplotlib.cbook.GetRealpathAndStat(**kwargs)[源代码]

基类:object

3.0 版后已移除: getrealpathandstat类在matplotlib 3.0中已被弃用,将在3.2中删除。

class matplotlib.cbook.Grouper(init=())[源代码]

基类:object

这个类提供了一种轻量级的方法,当一个全面的图形数据结构被过度破坏时,可以将任意对象组合成不相交的集合。

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

要联接的对象必须是可哈希的和弱可引用的。

例如:

>>> from matplotlib.cbook import Grouper
>>> class Foo(object):
...     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)
>>> sorted(map(tuple, grp))
[(a, b, c), (d, e)]
>>> grp.joined(a, b)
True
>>> grp.joined(a, c)
True
>>> grp.joined(a, d)
False
clean()[源代码]

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

get_siblings(a)[源代码]

返回与联接的所有项 a 包括它自己。

join(a, *args)[源代码]

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

joined(a, b)[源代码]

返回true ab 是同一组的成员。

remove(a)[源代码]
exception matplotlib.cbook.IgnoredKeywordWarning[源代码]

基类:UserWarning

用于发出有关Matplotlib将忽略的关键字参数的警告的类

class matplotlib.cbook.Locked(**kwargs)[源代码]

基类:object

3.0 版后已移除: 锁定类在matplotlib 3.0中已被弃用,将在3.2中删除。

用于处理锁的上下文管理器。

基于Conda的代码。

(c)2012-2013 Continuum Analytics,Inc./https://www.continuum.io/保留所有权利

Conda根据BSD 3条款许可证的条款分发。请咨询许可证或https://opensource.org/licenses/bsd-3-clause。

LOCKFN = '.matplotlib_lock'
exception TimeoutError[源代码]

基类:RuntimeError

class matplotlib.cbook.Stack(default=None)[源代码]

基类:object

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

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

back()[源代码]

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

bubble(o)[源代码]

提高 o 到栈顶。 o 必须存在于堆栈中。

o 返回。

clear()[源代码]

清空堆栈。

empty()[源代码]

返回堆栈是否为空。

forward()[源代码]

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

home()[源代码]

将第一个元素推到堆栈顶部。

返回第一个元素。

push(o)[源代码]

o 到当前位置的堆栈。丢弃所有后期元素。

o 返回。

remove(o)[源代码]

去除 o 从堆栈。

matplotlib.cbook.align_iterators(func, *iterables)[源代码]

2.2 版后已移除: Align_迭代器函数在matplotlib 2.2中已被弃用,将在3.1中删除。

这个生成器接受一组由func排序的iterables,它发送排序的tuples::

(func(row), [rows from all iterators matching func(row)])

它被使用 matplotlib.mlab.recs_join() 连接记录数组

matplotlib.cbook.boxplot_stats(X, whis=1.5, bootstrap=None, labels=None, autorange=False)[源代码]

返回用于绘制一系列方框图和胡须图的统计字典列表。这个 Returns 节枚举字典所需的键。用户可以跳过此函数并将用户定义的一组词典传递给新的 axes.bxp 方法,而不是依赖MPL进行计算。

参数:
X : 类数组

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

whis : 浮点、字符串或序列(默认值=1.5)

作为漂浮物,决定了胡须到达第一和第三四分位数以外的地方。换句话说,iqr是四分位间距 (Q3-Q1 )上部晶须将延伸至最后一个基准,小于 Q3 + whis*IQR )同样,较低的晶须将延伸到第一个基准,大于 Q1 - whis*IQR . 除触须外,数据被视为离群值,并作为单独的点绘制。这可以设置为百分位数的升序(例如, [5, 95] )将胡须设置为数据的特定百分比。最后, whis 可以是字符串 'range' 使胡须达到数据的最小值和最大值。在第25和75百分位相等的边缘情况下, whis 可自动设置为 'range' 通过 autorange 选择权。

引导程序 : 可选的

应该引导中位数周围的置信区间的次数(百分比法)。

标签 : 类似数组,可选

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

奥特罗姆 : bool,可选(假)

什么时候? True 数据的分布使得25%和75%相等, whis 设置为 'range' 使晶须末端处于数据的最小值和最大值。

返回:
BXPSTATS : DICT列表

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

价值描述
标签 箱线图的勾号标签
意思是 算术平均值
地中海 第五十百分位数
Q1 第一个四分位数(25%)
Q3 第三个四分位数(75%)
西洛 中间带周围的下凹口
齐希 中间带周围的上凹口
威士忌 下胡须末端
惠施 上胡须末端
传单 离群点

笔记

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

\[Mathrm Med pm 1.57次frac mathrm iqr sqrt n\]

一般方法来源:McGill,R.,Tukey,J.W.和Larsen,W.A.(1978),“箱线变化”,美国统计学家,32:12-16。

matplotlib.cbook.contiguous_regions(mask)[源代码]

返回(ind0,ind1)的列表,以便屏蔽 [吲哚1:吲哚酮] .all()是正确的,我们涵盖了所有这些区域

matplotlib.cbook.dedent(s)[源代码]

从docstring中删除多余的缩进 s .

丢弃任何前导空白行,然后从每行中删除最多n个空白字符,其中n是第一行中前导空白字符的数目。它在删除前导空白行和使用第一个非空白行确定缩进方面不同于textwarp.dent。

在大多数情况下,速度也更快。

matplotlib.cbook.delete_masked_points(*args)[源代码]

在一组参数中查找所有屏蔽点和/或非有限点,并返回只剩下未屏蔽点的参数。

参数可以分为5类:

  1. 一维屏蔽数组
  2. 一维中子线
  3. 具有多个维度的ndarrays
  4. 其他非字符串iterables
  5. 别的

第一个参数必须在前四个类别中的一个类别中;任何长度与第一个参数不同的参数(因此第5类中的任何内容)都将以不变的方式传递。

屏蔽是从类别1、2和4中长度正确的所有参数中获取的;如果屏蔽在屏蔽数组中或是NaN或Inf中,则点是不好的。如果 np.isfinite() 不生成布尔数组。

在删除任何参数中与遮罩对应的点或行后,未通过更改传递的所有输入参数将以ndarrays形式返回。

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

matplotlib.cbook.file_requires_unicode(x)[源代码]

返回 True 如果给定的可写文件(如对象)要求向其写入Unicode。

matplotlib.cbook.flatten(seq, scalarp=<function is_scalar_or_string>)[源代码]

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

例如:

>>> 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 Blisset的合成,来自:https://code.activestate.com/recipes/121294/和食谱1.12

matplotlib.cbook.get_label(y, default_name)[源代码]
matplotlib.cbook.get_realpath_and_stat[源代码]
matplotlib.cbook.get_sample_data(fname, asfileobj=True)[源代码]

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

如果示例数据文件存储在不同于默认值的位置(即“mpl data/sample_data”与“matplotlib”python模块文件的同一级别),请将rc参数examples.directory设置为我们应该查看的目录。

如果文件名以.gz结尾,则文件将隐式取消压缩。

matplotlib.cbook.index_of(y)[源代码]

如果没有显式给定x值,则获取要绘制的输入索引的辅助函数。

试图得到 y.index (如果是pd.series,则有效),如果失败,则返回np.arange(y.shape [0] )

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

参数:
y : 标量或类似数组

建议Y值

返回:
x, y : 恩达雷

要绘制的X和Y值。

matplotlib.cbook.is_hashable(obj)[源代码]

返回true obj 可以散列

matplotlib.cbook.is_math_text(s)[源代码]
matplotlib.cbook.is_numlike(obj)[源代码]

3.0 版后已移除: IsInstance(…,numbers.number)

如果返回真 obj 看起来像个数字

matplotlib.cbook.is_scalar_or_string(val)[源代码]

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

matplotlib.cbook.is_writable_file_like(obj)[源代码]

如果返回真 obj 看起来像一个文件对象 方法

matplotlib.cbook.iterable(obj)[源代码]

如果返回真 obj 是可迭代的

matplotlib.cbook.listFiles(root, patterns='*', recurse=1, return_folders=0)[源代码]

3.0 版后已移除: listfiles函数在matplotlib 3.0中已弃用,将在3.2中删除。

递归列出文件

来自《 Python 食谱》中的帕尔玛和马泰利

matplotlib.cbook.local_over_kwdict(local_var, kwargs, *keys)[源代码]

强制局部变量优先于Kwargs dict中可能存在冲突的参数。以下可能的输出值按优先级顺序考虑:

当地禁运 [钥匙0] >…克沃斯 [keys[-1] ]

其中第一个值不是“无”的将被返回。如果全部都不存在,则不会返回任何信息。每把钥匙都将从Kwargs dict中取出。

参数:
local_var: any object

局部变量(最高优先级)

克沃斯:DICT

关键字参数字典;就地修改

键:STR(S)

要处理的关键字参数的名称,按优先级降序排列

返回:
任何物体

本地变量或一个Kwarg [key] 钥匙钥匙

加薪:
IgnoredKeywordWarning

对于从Kwargs中移除但不用作输出值的键中的每个键

class matplotlib.cbook.maxdict(maxsize)[源代码]

基类:dict

具有最大大小的字典;这不会覆盖所有相关方法来约束大小,只需setitem,因此请谨慎使用。

matplotlib.cbook.mkdirs(newdir, mode=511)[源代码]

3.0 版后已移除: mkdirs函数在matplotlib 3.0中已弃用,将在3.2中删除。

制作目录 纽迪尔 递归,并设置 mode . 相当于:

> mkdir -p NEWDIR
> chmod MODE NEWDIR
matplotlib.cbook.normalize_kwargs(kw, alias_mapping=None, required=(), forbidden=(), allowed=None)[源代码]

帮助函数规范化Kwarg输入

它们的解决顺序是:

  1. 混叠
  2. 必修的
  3. 被禁止的
  4. 允许

这个顺序意味着只有规范名称需要出现在 allowedforbiddenrequired

参数:
alias_mapping, dict, optional

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

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

必修的 : 不可更改,可选

一组字段,必须以Kwarg为单位。

被禁止的 : 不可更改,可选

可能不在Kwargs中的密钥列表

允许 : 可选元组

允许字段的元组。如果不是没有,那么如果 kw 包含不在的联合中的任何键 requiredallowed . 只允许传入必需的字段 () 对于 allowed

加薪:
TypeError

如果将无效的args/kwargs传递给可调用文件,则匹配python所引发的内容。

matplotlib.cbook.open_file_cm(path_or_file, mode='r', encoding=None)[源代码]

传递文件对象和上下文管理 PathLike S

matplotlib.cbook.print_cycles(objects, outstream=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>, show_progress=False)[源代码]
物体
查找循环的对象列表。在gc.garbage中传递以查找阻止某些对象被垃圾收集的循环通常很有用。
外流
输出流。
show_progress
如果为真,则打印找到时达到的对象数。
matplotlib.cbook.pts_to_midstep(x, *args)[源代码]

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

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

参数:
x : 数组

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

Y1,…,YP : 数组

Y数组将转换为阶梯;所有数组的长度必须与 x .

返回:
out : 数组

x和y值按与输入相同的顺序转换为步骤;可以解包为 x_out, y1_out, ..., yp_out . 如果输入是长度 N ,每个数组的长度 2N .

实例

>>x瓒s,y1瓒s,y2瓒s=pts瓒到瓒中间步骤(x,y1,y2)

matplotlib.cbook.pts_to_poststep(x, *args)[源代码]

将连续行转换为后置步骤。

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

参数:
x : 数组

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

Y1,…,YP : 数组

Y数组将转换为阶梯;所有数组的长度必须与 x .

返回:
out : 数组

x和y值按与输入相同的顺序转换为步骤;可以解包为 x_out, y1_out, ..., yp_out . 如果输入是长度 N ,每个数组的长度 2N + 1 . 为了 N=0 ,长度为0。

实例

>>X,Y1,Y2 S=pts to poststep(X,Y1,Y2)

matplotlib.cbook.pts_to_prestep(x, *args)[源代码]

将连续行转换为预步骤。

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

参数:
x : 数组

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

Y1,…,YP : 数组

Y数组将转换为阶梯;所有数组的长度必须与 x .

返回:
out : 数组

x和y值按与输入相同的顺序转换为步骤;可以解包为 x_out, y1_out, ..., yp_out . 如果输入是长度 N ,每个数组的长度 2N + 1 . 为了 N=0 ,长度为0。

实例

>>X S,Y1,Y2 S=pts to prestep(X,Y1,Y2)