matplotlib.cbook
Коллекция служебных функций и классов. Изначально многие (но не все) были из Python Cookbook — отсюда и название cbook.
Этот модуль безопасно импортировать из любой части Matplotlib; он импортирует Matplotlib только во время выполнения.
- classmatplotlib.cbook.CallbackRegistry(exception_handler=<function _exception_printer>, *, signals=None)[source]
-
Bases:
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) если работает интерактивный цикл событий; он повторно поднимает исключение, если интерактивный цикл событий не работает. - signalsсписок, необязательно
-
Если не равно None, signals — это список сигналов, которые обрабатывает этот регистр: попытка
processилиconnectк сигналу, отсутствующему в списке, вызываетValueError. По умолчанию, None, не ограничивает обрабатываемые сигналы.
- blocked(*, signal=None)[source]
-
Блокировка сигналов обратного вызова для обработки.
Контекстный менеджер для временной блокировки/отключения сигналов обратного вызова от обработки зарегистрированными слушателями.
- Параметры:
-
- signalстрока, необязательно
-
Сигнал обратного вызова для блокировки. По умолчанию блокируются все сигналы.
- connect(signal, func)[source]
-
Регистрация func для вызова при генерации сигнала signal.
- disconnect(cid)[source]
-
Отключение обратного вызова, зарегистрированного с идентификатором обратного вызова cid.
Ошибка не генерируется, если такой обратный вызов не существует.
- process(s, *args, **kwargs)[source]
-
Обработка сигнала s.
Все функции, зарегистрированные для получения обратных вызовов по s, будут вызваны с
*argsи**kwargs.
- classmatplotlib.cbook.Grouper(init=())[source]
-
Bases:
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
- clean()[source]
-
Очистка мертвых слабых ссылок из словаря.
- get_siblings(a)[source]
-
Возвращает все элементы, объединённые с a, включая себя.
- join(a, *args)[source]
-
Объединение заданных аргументов в один и тот же набор. Принимает один или несколько аргументов.
- joined(a, b)[source]
-
Возвращает, являются ли a и b членами одного и того же множества.
- remove(a)[source]
- classmatplotlib.cbook.GrouperView(grouper)[source]
-
Bases:
objectНеизменяемый вид на
Grouper.- clean()[source]
-
[Устарело] Очистить устаревшие слабые ссылки из словаря.
Примечания
Устарело начиная с версии 3.6.
- get_siblings(a)[source]
-
Возвращает все элементы, объединённые с a, включая сам a.
- join(a, *args)[source]
-
[Устарело] Объединить заданные аргументы в один и тот же набор. Принимает один или несколько аргументов.
Примечания
Устарело начиная с версии 3.6.
- joined(a, b)[source]
-
Возвращает, являются ли a и b членами одного набора.
- remove(a)[source]
-
[Устарело]
Примечания
Устарело начиная с версии 3.6:
- classmatplotlib.cbook.Stack(default=None)[source]
-
Bases:
objectСтек элементов с перемещаемым курсором.
Имитирует навигацию назад/вперед в веб-браузере.
- back()[source]
-
Переместить позицию назад и вернуть текущий элемент.
- bubble(o)[source]
-
Поднять все ссылки на o наверх стека и вернуть его.
- Возможные исключения:
-
- ValueError
-
Если o не находится в стеке.
- clear()[source]
-
Очистить стек.
- empty()[source]
-
Возвращает, пуст ли стек.
- forward()[source]
-
Переместить позицию вперед и вернуть текущий элемент.
- home()[source]
-
Поместить первый элемент наверх стека.
Возвращает первый элемент.
- push(o)[source]
-
Поместить o в стек в текущей позиции. Отбросить все последующие элементы.
Возвращает o.
- remove(o)[source]
-
Удалить o из стека.
- Возможные исключения:
-
- ValueError
-
Если o не находится в стеке.
- matplotlib.cbook.boxplot_stats(X, whis=1.5, bootstrap=None, labels=None, autorange=False)[source]
-
Возвращает список словарей со статистикой, используемой для построения серии диаграмм размаха и ящика с помощью
bxp.- Параметры:
-
- Xarray-like
-
Данные, которые будут представлены в диаграммах размаха. Должны иметь 2 или меньше измерений.
- whisfloat или (float, float), по умолчанию: 1.5
-
Положение усов.
Если float, нижний ус находится в наименьшем значении, превышающем
Q1 - whis*(Q3-Q1), а верхний ус в наибольшем значении, меньше чемQ3 + whis*(Q3-Q1), где Q1 и Q3 — первый и третий квартили. Значение по умолчаниюwhis = 1.5соответствует исходному определению диаграмм размаха по Туки.Если пара чисел с плавающей запятой, они указывают на процентили, на которых следует рисовать усы (например, (5, 95)). В частности, установка значения на (0, 100) приводит к усам, охватывающим весь диапазон данных.
В случае, когда
Q1 == Q3, whis автоматически устанавливается в (0, 100) (покрывает весь диапазон данных), если autorange имеет значение True.За пределами усов данные считаются выбросами и отображаются как отдельные точки.
- bootstrapint, необязательно
-
Количество раз, когда должны быть заново рассчитаны доверительные интервалы вокруг медианы (метод процентилей).
- labelsarray-like, необязательно
-
Метки для каждого набора данных. Длина должна быть совместима с измерениями X.
- autorangebool, необязательно (False)
-
Когда
Trueи данные распределены таким образом, что 25-й и 75-й процентили равны,whisустанавливается в (0, 100), так что концы усов находятся в минимальном и максимальном значениях данных.
- Возвращаемое значение:
-
- list of dict
-
Список словарей, содержащих результаты для каждого столбца данных. Ключи каждого словаря — следующие:
Ключ
Описание значения
label
метка для диаграммы размаха
mean
арифметическое среднее значение
med
50-й процентиль
q1
первый квартиль (25-й процентиль)
q3
третий квартиль (75-й процентиль)
iqr
межквартильный размах
cilo
нижняя отметка вокруг медианы
cihi
верхняя отметка вокруг медианы
whislo
конец нижнего уса
whishi
конец верхнего уса
fliers
выбросы
Примечания
Не использующий метод бутстреп для интервала доверия использует асимптотическое приближение, основанное на распределении Гаусса:
\[\mathrm{med} \pm 1.57 \times \frac{\mathrm{iqr}}{\sqrt{N}}\]Общие подходы из: McGill, R., Tukey, J.W., и 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.delete_masked_points(*args)[source]
-
Находит все замаскированные и/или неконечные точки в наборе аргументов и возвращает аргументы с оставшимися только незамаскированными точками.
Аргументы могут быть любой из 5 категорий:
- 1-D массивы с маской
- 1-D массивы NumPy
- массивы NumPy с более чем одним измерением
- другие итерируемые объекты, не являющиеся строками
- любой другой тип
Первый аргумент должен быть одним из первых четырех типов; любой аргумент с длиной, отличающейся от длины первого аргумента (и, следовательно, любой аргумент из категории 5), передается без изменений.
Маски получаются от всех аргументов правильной длины в категориях 1, 2 и 4; точка считается плохой, если замаскирована в массиве с маской или является nan или inf. Не предпринимается попытка извлечь маску из категорий 2, 3 и 4, если
numpy.isfiniteне возвращает массив boolean.Все входные аргументы, которые не передаются без изменений, возвращаются в виде массивов NumPy после удаления точек или строк, соответствующих маскам в любом из аргументов.
Значительно упрощенная версия этой функции изначально была написана как помощник для Axes.scatter().
- matplotlib.cbook.file_requires_unicode(x)[source]
-
Возвращает значение True, если данному файловому объекту необходимо использовать 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]Авторы: Composite of Holger Krekel and Luther Blissett Источник: https://code.activestate.com/recipes/121294/ и рецепт 1.12 в кулинарной книге
- matplotlib.cbook.get_sample_data(fname, asfileobj=True, *, np_load=False)[source]
-
Возвращает файл с образцовыми данными. fname — путь, относительный к
mpl-data/sample_dataкаталогу. Если asfileobj имеет значение True, возвращает объект файла, иначе — просто путь к файлу.Файлы с образцовыми данными хранятся в каталоге 'mpl-data/sample_data' в пакете Matplotlib.
Если имя файла заканчивается на .gz, файл неявно распаковывается. Если имя файла заканчивается на .npy или .npz, asfileobj имеет значение True, а np_load имеет значение True, файл загружается с помощью
numpy.load. В настоящее время np_load по умолчанию имеет значение False, но в будущей версии будет установлено в значение True.
- matplotlib.cbook.index_of(y)[source]
-
Функция-помощник для создания разумных значений x для заданного y.
Используется для построения графиков (x, y), если значения x не заданы явно.
Сначала попробуйте
y.index(предполагая, что y —pandas.Series), если это не сработает, используйтеrange(len(y)).В будущем эта функция будет расширена для работы с другими типами меченых данных.
- Параметры:
-
- yfloat или массив-подобный объект
- Возвращает:
-
- x, yndarray
-
Значения x и y для построения графика.
- matplotlib.cbook.is_math_text(s)[source]
-
Возвращает, содержит ли строка s математические выражения.
Это делается путем проверки, содержит ли s четное число неэкранированных знаков доллара.
- matplotlib.cbook.is_scalar_or_string(val)[source]
-
Возвращает, является ли заданный объект скаляром или похожим на строку.
- matplotlib.cbook.is_writable_file_like(obj)[source]
-
Возвращает, похоже ли obj на объект файла с методом write.
- matplotlib.cbook.ls_mapper={'-': 'solid', '--': 'dashed', '-.': 'dashdot', ':': 'dotted'}
-
Сопоставляет короткие коды стиля линии с полным именем, используемым бэкендами.
- matplotlib.cbook.ls_mapper_r={'dashdot': '-.', 'dashed': '--', 'dotted': ':', 'solid': '-'}
-
Сопоставляет полные имена стилей линий, используемых бэкендами, с их короткими кодами.
- classmatplotlib.cbook.maxdict(maxsize)[source]
-
Наследуется от
dict[Устарело] Словарь с максимальным размером.
Примечания
Это не переопределяет все соответствующие методы для ограничения размера, только
__setitem__, поэтому используйте с осторожностью.Устарело начиная с версии 3.6: Используйте functools.lru_cache вместо этого.
- matplotlib.cbook.normalize_kwargs(kw, alias_mapping=None)[source]
-
Функция-помощник для нормализации входных данных kwarg.
- Параметры:
-
- kwdict или None
-
Словарь ключевых аргументов. None явно поддерживается и обрабатывается как пустой словарь, чтобы поддерживать функции с необязательным параметром вида
props=None. - alias_mappingdict или подкласс Artist или экземпляр Artist, необязательно
-
Сопоставление между каноническим именем и списком псевдонимов в порядке приоритета, от низшего к высшему.
Если каноническое значение не находится в списке, предполагается, что у него самый высокий приоритет.
Если передан подкласс или экземпляр Artist, используется его сопоставление псевдонимов.
- Исключения:
-
- TypeError
-
Для соответствия тому, что поднимает 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]
-
Выводит циклы циклических ссылок в заданных objects.
Часто полезно передавать
gc.garbageдля поиска циклов, которые препятствуют сборке мусора некоторых объектов.- Параметры:
-
- objects
-
Список объектов, в которых нужно найти циклы.
- outstream
-
Поток для вывода.
- show_progressbool
-
Если True, выводит количество достигнутых объектов по мере их обнаружения.
- matplotlib.cbook.pts_to_midstep(x, *args)[source]
-
Преобразование непрерывной линии в средние шаги.
При заданном наборе
Nточек преобразуйте в2Nточки, которые при линейном соединении дают ступенчатую функцию, изменяющую значения в середине интервалов.- Параметры:
-
- xмассив
-
Расположение x шагов. Может быть пустым.
- y1, ..., ypмассив
-
Массивы y, которые должны быть преобразованы в шаги; все они должны иметь одинаковую длину с
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)[source]
-
Преобразование непрерывной линии в постшаги.
Исходя из набора
Nточек, преобразуйте в2N + 1точки, которые при линейном соединении дают ступенчатую функцию, меняющую значения в конце интервалов.- Параметры:
-
- xмассив
-
Положение x шагов. Может быть пустым.
- y1, ..., ypмассив
-
Массивы y, которые должны быть преобразованы в шаги; все должны иметь одинаковую длину с
x.
- Возвращаемые значения:
-
- массив
-
Значения 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массив
-
Положение x шагов. Может быть пустым.
- y1, ..., ypмассив
-
Массивы y, которые должны быть преобразованы в шаги; все должны иметь одинаковую длину с
x.
- Возвращаемые значения:
-
- массив
-
Значения 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.safe_first_element(obj)[source]
-
Возвращает первый элемент в obj.
Это независимый от типа способ получения первого элемента, поддерживающий как доступ по индексу, так и протокол итератора.
- matplotlib.cbook.safe_masked_invalid(x, copy=False)[source]
- matplotlib.cbook.sanitize_sequence(data)[source]
-
Преобразуйте объекты dictview в список. Другие входные данные возвращаются без изменений.
- classmatplotlib.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)точек между каждым исходным значением; значения интерполируются линейно.- Параметры:
-
- aмассив, форма (n, ...)
- stepsint
- Возвращаемые значения:
-
- массив
-
форма
((n - 1) * steps + 1, ...)
- matplotlib.cbook.strip_math(s)[source]
-
Удаление форматирования latex из mathtext.
Обрабатываются только полностью математические и полностью не математические строки.
- matplotlib.cbook.to_filehandle(fname, flag='r', return_opened=False, encoding=None)[source]
-
Преобразовать путь к открытому файловому дескриптору или передать файлоподобный объект.
Рассмотрите использование
open_file_cmвместо этого, так как оно позволяет легче правильно закрывать вновь созданные файловые объекты.- Параметры:
-
- fnamestr или путь-подобный объект или файлоподобный объект
-
Если
strилиos.PathLike, файл открывается с флагами, заданными параметрами flag и encoding. Если файлоподобный объект, он передаётся без изменений. - flagстрока, по умолчанию: 'r'
-
Передаётся как аргумент mode в
open, когда fname —strилиos.PathLike; игнорируется, если fname — файлоподобный объект. - return_openedbool, по умолчанию: False
-
Если True, возвращает и файловый объект, и булево значение, указывающее, был ли это новый файл (который вызывающий код должен закрыть). Если False, возвращает только новый файл.
- encodingстрока или None, по умолчанию: None
-
Передаётся как аргумент mode в
open, когда fname —strилиos.PathLike; игнорируется, если fname — файлоподобный объект.
- Возвращает:
-
- fhфайлоподобный объект
- openedbool
-
opened возвращается только если return_opened равно True.
- matplotlib.cbook.violin_stats(X, method, points=100, quantiles=None)[source]
-
Возвращает список словарей данных, которые можно использовать для построения серии диаграмм с ящиками с усами.
См. раздел
Returnsниже, чтобы увидеть необходимые ключи словаря.Пользователи могут пропустить эту функцию и вместо неё передать настроенный набор словарей с теми же ключами в
violinplot, вместо использования Matplotlib для расчётов. См. раздел Возвращает ниже, чтобы узнать ключи, которые должны присутствовать в словарях.- Параметры:
-
- Xмассив-подобный объект
-
Данные выборки, которые будут использоваться для создания оценок плотности гауссовой ядра. Должны иметь 2 или меньше измерений.
- methodвызываемый объект
-
Метод, используемый для вычисления оценки плотности ядра для каждого столбца данных. При вызове через
method(v, coords), он должен вернуть вектор значений KDE, вычисленных в значениях, указанных в coords. - pointsцелое число, по умолчанию: 100
-
Определяет количество точек для оценки каждой из оценок плотности гауссова ядра.
- quantilesмассив-подобный объект, по умолчанию: None
-
Определяет (если не None) список чисел с плавающей точкой в интервале [0, 1] для каждого столбца данных, представляющий квантили, которые будут отображаться для данного столбца данных. Должны иметь 2 или меньше измерений. 1D массив будет обрабатываться как одиночный список, содержащий их.
- Возвращает:
-
- список словарей
-
Список словарей, содержащих результаты для каждого столбца данных. Словари содержат, по крайней мере, следующее:
- coords: Список скаляров, содержащих координаты, в которых была вычислена эта оценка плотности ядра.
- vals: Список скаляров, содержащих значения оценки плотности ядра в каждой из координат, заданных в coords.
- mean: Среднее значение для данного столбца данных.
- median: Медианное значение для данного столбца данных.
- min: Минимальное значение для данного столбца данных.
- max: Максимальное значение для данного столбца данных.
- quantiles: Значения квантилей для данного столбца данных.
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.7.5/api/cbook_api.html