matplotlib.cbook
Коллекция служебных функций и классов. Первоначально многие (но не все) были из Python Cookbook — отсюда и название cbook.
Этот модуль безопасно импортировать из любой части matplotlib; он импортирует matplotlib только во время выполнения.
-
class matplotlib.cbook.Bunch(**kwargs)[source] -
Базируется на
types.SimpleNamespace[Устаревшее] Часто нам нужно просто собрать несколько вещей вместе, присвоив имя каждому элементу. Словарь подойдёт, но небольшой класс без действий даже удобнее и красивее в использовании. Всякий раз, когда вам нужно сгруппировать несколько переменных:
>>> point = Bunch(datum=2, squared=4, coord=12) >>> point.datum
Примечания
Устарело начиная с версии 3.0.
-
class matplotlib.cbook.CallbackRegistry(exception_handler=<function _exception_printer>)[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На практике всегда следует отключать все обратные вызовы, когда они больше не нужны, чтобы избежать висячих ссылок (и, следовательно, утечек памяти). Однако реальный код в Matplotlib редко это делает, и из-за его конструкции это довольно сложно сделать. Чтобы обойти это и предотвратить этот класс утечек памяти, вместо этого мы храним только слабые ссылки на связанные методы, поэтому, когда целевой объект требуется уничтожить, CallbackRegistry не будет его поддерживать.
Параметры: -
exception_handler : callable, optional -
Если предоставлено, должно иметь сигнатуру
def handler(exc: Exception) -> None:
Если не равно None, эта функция будет вызываться с любым
Exceptionподклассом, поднятым обратными вызовами вCallbackRegistry.process. Обработчик может либо обработать исключение, либо повторно его поднять.Вызываемая функция должна быть сериализуемой.
По умолчанию обработчик
def h(exc): traceback.print_exc()
-
connect(self, s, func)[source] -
Зарегистрировать func для вызова при генерации сигнала s.
-
disconnect(self, cid)[source] -
Отключить зарегистрированный обратный вызов с идентификатором обратного вызова cid.
-
process(self, s, *args, **kwargs)[source] -
Обработать сигнал s.
Все функции, зарегистрированные для получения обратных вызовов по s, будут вызваны с
*argsи**kwargs.
-
-
class matplotlib.cbook.GetRealpathAndStat(**kwargs)[source] -
Базируется на
object[Устаревшее]
Примечания
Устарело начиная с версии 3.0:
-
class matplotlib.cbook.Grouper(init=())[source] -
Базируется на
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(self)[source] -
Очистка мёртвых слабых ссылок из словаря.
-
get_siblings(self, a)[source] -
Возвращает все элементы, объединённые с a, включая сам a.
-
join(self, a, *args)[source] -
Объединяет заданные аргументы в один набор. Принимает один или несколько аргументов.
-
joined(self, a, b)[source] -
Возвращает, являются ли a и b членами одного набора.
-
remove(self, a)[source]
-
-
exception matplotlib.cbook.IgnoredKeywordWarning[source] -
Базируется на
UserWarningКласс для выдачи предупреждений о ключевых аргументах, которые будут проигнорированы matplotlib
-
class matplotlib.cbook.Locked(**kwargs)[source] -
Базируется на
object[Устаревшее] Менеджер контекста для обработки блокировок.
Основано на коде из conda.
(c) 2012-2013 Continuum Analytics, Inc. / https://www.continuum.io/ Все права защищены
conda распространяется на условиях лицензии BSD с тремя пунктами. Обратитесь к LICENSE_CONDA или https://opensource.org/licenses/BSD-3-Clause.
Примечания
Устарело начиная с версии 3.0.
-
LOCKFN = '.matplotlib_lock'
-
exception TimeoutError[source] -
Базируется на
RuntimeError
-
-
class matplotlib.cbook.Stack(default=None)[source] -
Основы:
objectСтек элементов с перемещаемым курсором.
Имитирует навигацию назад/вперед в веб-браузере.
-
back(self)[source] -
Переместить позицию назад и вернуть текущий элемент.
-
bubble(self, o)[source] -
Поднять o наверх стека. o должен присутствовать в стеке.
Возвращается o.
-
clear(self)[source] -
Очистить стек.
-
empty(self)[source] -
Возвращает, пуст ли стек.
-
forward(self)[source] -
Переместить позицию вперед и вернуть текущий элемент.
-
home(self)[source] -
Поместить первый элемент наверх стека.
Возвращается первый элемент.
-
push(self, o)[source] -
Поместить o в стек в текущей позиции. Отбросить все последующие элементы.
Возвращается o.
-
remove(self, o)[source] -
Удалить o из стека.
-
-
matplotlib.cbook.boxplot_stats(X, whis=1.5, bootstrap=None, labels=None, autorange=False)[source] -
Возвращает список словарей со статистикой, используемой для построения серии диаграмм размаха и ящика. Раздел
Returnsперечисляет необходимые ключи словаря. Пользователи могут пропустить эту функцию и вместо этого передать пользовательский набор словарей в новый методaxes.bxp, не полагаясь на MPL для расчётов.Параметры: -
X : array-like -
Данные, которые будут представлены на диаграммах размаха и ящика. Должны иметь 2 или меньше измерений.
-
whis : float, string, or sequence (default = 1.5) -
В виде числа, определяет дальность усов за первыми и третьими квартилями. Другими словами, если IQR — это межквартильный размах (
Q3-Q1), верхний ус будет простираться до последнего значения, меньшего, чемQ3 + whis*IQR. Аналогично, нижний ус будет простираться до первого значения, большего, чемQ1 - whis*IQR. За пределами усов данные считаются выбросами и отображаются как отдельные точки. Это можно задать как возрастающую последовательность процентилей (например, [5, 95]), чтобы установить усы на определённых процентилях данных. Наконец,whisможет быть строкой'range', чтобы принудительно установить усы к минимуму и максимуму данных. В крайнем случае, если 25-й и 75-й процентили равны,whisможет автоматически устанавливаться в'range'с помощью опцииautorange. -
bootstrap : int, optional -
Количество раз, когда доверительные интервалы вокруг медианы должны быть заново сохранены методом процентилей.
-
labels : array-like, optional -
Метки для каждого набора данных. Длина должна быть совместима с измерениями
X. -
autorange : bool, optional (False) -
Когда
Trueи данные распределены таким образом, что 25-й и 75-й процентили равны,whisустанавливается в'range'таким образом, что концы усов находятся в минимуме и максимуме данных.
Возвращает: -
bxpstats : list of dict -
Список словарей, содержащих результаты для каждого столбца данных. Ключи каждого словаря следующие:
Ключ Описание значения label метка отметки для диаграммы размаха и ящика mean среднее арифметическое значение med 50-й процентиль q1 первый квартиль (25-й процентиль) q3 третий квартиль (75-й процентиль) cilo нижняя отметка вокруг медианы cihi верхняя отметка вокруг медианы whislo конец нижнего уса whishi конец верхнего уса fliers выбросы
Примечания
Не-бустропический подход к доверительным интервалам использует асимптотическое приближение на основе Гаусса:
\[\mathrm{med} \pm 1.57 \times \frac{\mathrm{iqr}}{\sqrt{N}}\]Общий подход взят из: McGill, R., Tukey, J.W., and Larsen, W.A. (1978) «Variations of Boxplots», The American Statistician, 32:12-16.
-
-
matplotlib.cbook.contiguous_regions(mask)[source] -
Возвращает список (ind0, ind1) такой, что mask[ind0:ind1].all() равно True, и мы покрываем все такие области
-
matplotlib.cbook.dedent(s)[source] -
[Устарело] Удаляет избыточный отступ из документации s.
Отбрасывает любые ведущие пустые строки, затем удаляет до n символов пробела с каждой строки, где n — количество ведущих пробелов в первой строке. Отличается от textwrap.dedent тем, что удаляет ведущие пустые строки и использует первую непустую строку для определения отступа.
Также быстрее в большинстве случаев.
Примечания
Устарело начиная с версии 3.1.
-
matplotlib.cbook.delete_masked_points(*args)[source] -
Находит все замаскированные и/или не конечные точки в наборе аргументов и возвращает аргументы, содержащие только незамаскированные точки.
Аргументы могут принадлежать к любому из 5 категорий:
- 1-мерные замаскированные массивы
- 1-мерные массивы
- массивы с более чем одним измерением
- другие итерируемые объекты, не являющиеся строками
- любой другой тип
Первый аргумент должен принадлежать к одной из первых четырёх категорий; любые аргументы с длиной, отличающейся от первого аргумента (и, следовательно, любой аргумент из пятой категории), передаются без изменений.
Маски получаются от всех аргументов правильной длины в категориях 1, 2 и 4; точка является плохой, если она замаскирована в массиве с маской или если она является nan или inf. Никакой попытки извлечения маски из категорий 2, 3 и 4 не предпринимается, если
np.isfinite()не возвращает массив булевых значений.Все входные аргументы, которые не передаются без изменений, возвращаются как массивы после удаления точек или строк, соответствующих маскам в любом из аргументов.
Значительно более простая версия этой функции первоначально была написана как вспомогательная функция для Axes.scatter().
-
matplotlib.cbook.file_requires_unicode(x)[source] -
Возвращает, требует ли данный записываемый объект файла Unicode для записи в него.
-
matplotlib.cbook.flatten(seq, scalarp=<function is_scalar_or_string at 0x7f80965697b8>)[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]Авторы: Композиция Хольгера Крекеля и Лютера Блиссета Из: https://code.activestate.com/recipes/121294/ и рецепт 1.12 в кулинарной книге
-
matplotlib.cbook.get_label(y, default_name)[source] -
[Устарело]
Примечания
Устарело начиная с версии 3.1:
-
matplotlib.cbook.get_realpath_and_stat(path)[source]
-
matplotlib.cbook.get_sample_data(fname, asfileobj=True)[source] -
Возвращает файл с образцовыми данными. fname — путь относительно каталога
mpl-data/sample_data. Если asfileobj равноTrue, возвращается объект файла, в противном случае — только путь к файлу.Установите параметр rc examples.directory в каталог, в котором следует искать, если файлы sample_data хранятся в другом месте, отличном от стандартного (который — 'mpl-data/sample_data` на том же уровне, что и файлы модуля Python 'matplotlib').
Если имя файла оканчивается на .gz, файл неявно распаковывается.
-
matplotlib.cbook.index_of(y)[source] -
Вспомогательная функция для получения индекса входного значения для построения графика, если значения x не заданы явно.
Пытается получить
y.index(работает, если это pd.Series), если это не удаётся, возвращает np.arange(y.shape[0]).В будущем эта функция будет расширена для обработки различных типов помеченных данных.
Параметры: -
y : scalar or array-like -
Предлагаемое значение y
Возвращает: -
x, y : ndarray -
Значения x и y для построения графика.
-
-
matplotlib.cbook.is_hashable(obj)[source] -
[Устарело] Возвращает True, если obj может быть хэширован
Примечания
Устарело начиная с версии 3.1.
-
matplotlib.cbook.is_math_text(s)[source]
-
matplotlib.cbook.is_numlike(obj)[source] -
[Устарело] Возвращает True, если obj выглядит как число
Примечания
Устарело начиная с версии 3.0.
-
matplotlib.cbook.is_scalar_or_string(val)[source] -
Возвращает True, если заданный объект является скаляром или похожим на строку.
-
matplotlib.cbook.is_writable_file_like(obj)[source] -
Возвращает True, если obj выглядит как объект файла с методом write.
-
matplotlib.cbook.iterable(obj)[source] -
[Устарело] Возвращает True, если obj является итерируемым
Примечания
Устарело начиная с версии 3.1.
-
matplotlib.cbook.listFiles(root, patterns='*', recurse=1, return_folders=0)[source] -
[Устарело] Рекурсивно перечисляет файлы
из рецепта Пармара и Мартелли из "Python Cookbook"
Примечания
Устарело начиная с версии 3.0.
-
matplotlib.cbook.local_over_kwdict(local_var, kwargs, *keys)[source] -
Обеспечивает приоритет локальной переменной над потенциально конфликтующими аргументами из словаря kwargs. Нижеследующие возможные значения возвращаемых данных рассматриваются в порядке приоритета:
local_var > kwargs[keys[0]] > ... > kwargs[keys[-1]]Будет возвращено первое из этих значений, отличное от None. Если все значения равны None, возвращается None. Каждый ключ в ключах будет удален из словаря kwargs на месте.
Параметры: -
local_var : any object -
Локальная переменная (высший приоритет)
-
kwargs : dict -
Словарь ключевых аргументов; изменяется на месте
-
keys : str(s) -
Имя(а) ключевых аргументов для обработки в порядке убывания приоритета
-
Возвращает: -
out : any object -
Либо local_var, либо одно из kwargs[key] для key in keys
Исключения: - IgnoredKeywordWarning
-
Для каждого ключа в ключах, который удаляется из kwargs, но не используется в качестве значения результата
-
-
class matplotlib.cbook.maxdict(maxsize)[source] -
Базовое:
dictСловарь с максимальным размером; это не переопределяет все соответствующие методы для ограничения размера, а только setitem, поэтому используйте с осторожностью
-
matplotlib.cbook.mkdirs(newdir, mode=511)[source] -
[Устарело] Рекурсивно создает каталог newdir и устанавливает mode. Эквивалентно
> mkdir -p NEWDIR > chmod MODE NEWDIR
Примечания
Устарело начиная с версии 3.0.
-
matplotlib.cbook.normalize_kwargs(kw, alias_mapping=None, required=(), forbidden=(), allowed=None)[source] -
Вспомогательная функция для нормализации входных данных kwargs
Порядок их разрешения:
- алиасинг
- обязательные
- запрещенные
- разрешенные
Этот порядок означает, что только канонические имена должны появляться в
allowed,forbidden,requiredПараметры: - alias_mapping, dict, optional
-
Сопоставление между каноническим именем и списком псевдонимов в порядке приоритета снизу вверх.
Если каноническое значение не входит в список, считается, что оно имеет наивысший приоритет.
-
required : iterable, optional -
Кортеж полей, которые должны быть в kwargs.
-
forbidden : iterable, optional -
Список ключей, которые не должны быть в kwargs
-
allowed : tuple, optional -
Кортеж разрешенных полей. Если это не None, то возникает ошибка, если
kwсодержит ключи, не входящие в объединениеrequiredиallowed. Чтобы разрешить только необходимые поля, передайте()дляallowed
Исключения: - TypeError
-
Для соответствия тому, что поднимает python, если переданы недействительные args/kwargs в вызываемую функцию.
-
matplotlib.cbook.open_file_cm(path_or_file, mode='r', encoding=None)[source] -
Передает объекты файлов и управляет контекстом
PathLike.
-
matplotlib.cbook.print_cycles(objects, outstream=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>, show_progress=False)[source] -
- objects
- Список объектов, в которых необходимо найти циклы. Часто бывает полезно передать gc.garbage, чтобы найти циклы, которые препятствуют сборке мусора некоторых объектов.
- outstream
- Поток для вывода.
- show_progress
- Если True, выводить количество достигнутых объектов по мере их нахождения.
-
matplotlib.cbook.pts_to_midstep(x, *args)[source] -
Преобразование непрерывной линии в средние шаги.
Набор
Nточек преобразуется в2Nточки, которые при линейном соединении образуют ступенчатую функцию, меняющую значения посередине интервалов.Параметры: -
x : array -
Позиции x шагов. Может быть пустым.
-
y1, ..., yp : array -
Массивы y, которые нужно преобразовать в шаги; все должны иметь такую же длину, как
x.
Возвращает: -
out : array -
Значения 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)[source] -
Преобразование непрерывной линии в последующие шаги.
Набор
Nточек преобразуется в2N + 1точки, которые при линейном соединении образуют ступенчатую функцию, меняющую значения в конце интервалов.Параметры: -
x : array -
Позиции x шагов. Может быть пустым.
-
y1, ..., yp : array -
Массивы y, которые нужно преобразовать в шаги; все должны иметь такую же длину, как
x.
Возвращает: -
out : array -
Значения x и y, преобразованные в шаги в том же порядке, что и входные данные; могут быть распакованы как
x_out, y1_out, ..., yp_out. Если входной массив имеет длинуN, каждый из этих массивов будет иметь длину2N + 1. ДляN=0, длина будет 0.
Примеры
>> x_s, y1_s, y2_s = pts_to_poststep(x, y1, y2)
-
-
matplotlib.cbook.pts_to_prestep(x, *args)[source] -
Преобразование непрерывной линии в предыдущие шаги.
Набор
Nточек преобразуется в2N - 1точки, которые при линейном соединении образуют ступенчатую функцию, меняющую значения в начале интервалов.Параметры: -
x : array -
Позиции x шагов. Может быть пустым.
-
y1, ..., yp : array -
Массивы y, которые нужно преобразовать в шаги; все должны иметь такую же длину, как
x.
Возвращает: -
out : array -
Значения x и y, преобразованные в шаги в том же порядке, что и входные данные; могут быть распакованы как
x_out, y1_out, ..., yp_out. Если входной массив имеет длинуN, каждый из этих массивов будет иметь длину2N + 1. ДляN=0, длина будет 0.
Примеры
>> x_s, y1_s, y2_s = pts_to_prestep(x, y1, y2)
-
-
matplotlib.cbook.report_memory(i=0)[source] -
Возвращает объем памяти, занимаемой процессом.
-
matplotlib.cbook.safe_first_element(obj)[source]
-
matplotlib.cbook.safe_masked_invalid(x, copy=False)[source]
-
matplotlib.cbook.safezip(*args)[source] -
[Устарело] Убедитесь, что args имеют одинаковую длину перед объединением.
Примечания
Устарело начиная с версии 3.1.
-
matplotlib.cbook.sanitize_sequence(data)[source] -
Преобразует объект dictview в список.
-
class matplotlib.cbook.silent_list(type, seq=None)[source] -
Базовый класс:
listпереопределяет repr при возвращении списка matplotlib-объектов, чтобы предотвратить вывод длинного бессмысленного вывода. Предполагается использование для однородного списка заданного типа.
-
matplotlib.cbook.simple_linear_interpolation(a, steps)[source] -
Перевыборка массива с
steps - 1точками между парами исходных точек.Параметры: -
a : array, shape (n, ...) -
steps : int
Возвращает: -
array, shape ((n - 1) * steps + 1, ...) -
Along each column of a, (steps - 1) points are introduced between - каждое из оригинальных значений; значения линейно интерполируются.
-
-
matplotlib.cbook.strip_math(s)[source] -
Удаление форматирования latex из mathtext.
Обрабатывает только полностью математические и полностью не-математические строки.
-
matplotlib.cbook.to_filehandle(fname, flag='r', return_opened=False, encoding=None)[source] -
Преобразование пути в открытый дескриптор файла или пропускание объекта типа «подобный файлу».
Вместо этого используйте
open_file_cm, так как это позволяет легче правильно закрывать только что созданные объекты файлов.Параметры: -
fname : str or PathLike or file-like object -
Если
strилиos.PathLike, файл открывается с флагами, указанными в flag и encoding. Если объект типа «подобный файлу», он пропускается. -
flag : str, default 'r' -
Передаётся как аргумент mode к
open, когда fname являетсяstrилиos.PathLike; игнорируется, если fname является объектом типа «подобный файлу». -
return_opened : bool, default False -
Если True, возвращает как объект файла, так и логическое значение, указывающее, был ли это новый файл (который вызывающий код должен закрыть). Если False, возвращает только новый файл.
-
encoding : str or None, default None -
Передаётся как аргумент mode к
open, когда fname являетсяstrилиos.PathLike; игнорируется, если fname является объектом типа «подобный файлу».
Возвращает: -
fh : file-like -
opened : bool -
opened возвращается только если return_opened равно True.
-
-
matplotlib.cbook.unicode_safe(s)[source] -
[Устарело]
Примечания
Устарело начиная с версии 3.0:
-
matplotlib.cbook.violin_stats(X, method, points=100)[source] -
Возвращает список словарей данных, которые можно использовать для построения серии диаграмм размаха. Смотрите раздел
Returnsниже, чтобы увидеть необходимые ключи словаря. Пользователи могут пропустить эту функцию и передать пользовательский набор словарей методуaxes.vplotвместо использования MPL для расчётов.Параметры: -
X : array-like -
Данные выборки, которые будут использованы для создания оценок плотности гауссова ядра. Должны иметь 2 или меньше измерений.
-
method : callable -
Метод, используемый для расчёта оценки плотности ядра для каждого столбца данных. При вызове через
method(v, coords), он должен возвращать вектор значений KDE, вычисленных в значениях, указанных в coords. -
points : scalar, default = 100 -
Определяет количество точек для оценки каждой из оценок плотности гауссова ядра.
Возвращает: - Список словарей, содержащих результаты для каждого столбца данных.
- Словари содержат по крайней мере следующее:
-
- coords: Список скаляров, содержащих координаты, в которых была вычислена оценка плотности ядра.
- vals: Список скаляров, содержащих значения оценки плотности ядра в каждой из координат, указанных в
coords. - mean: Среднее значение для этого столбца данных.
- median: Медианное значение для этого столбца данных.
- min: Минимальное значение для этого столбца данных.
- max: Максимальное значение для этого столбца данных.
-
© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.1.1/api/cbook_api.html