matplotlib.cbook
Коллекция служебных функций и классов. Первоначально многие (но не все) были взяты из Python Cookbook — отсюда и название cbook.
- 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 не будет его удерживать.
- Parameters:
-
- exception_handlercallable, optional
-
Если не None, exception_handler должен быть функцией, которая принимает исключение
Exceptionв качестве единственного параметра. Он вызывается при любом исключенииException, возникшем в обратных вызовах во времяCallbackRegistry.process, и может либо повторно поднять исключение, либо обработать его другим способом.Обработчик по умолчанию выводит исключение (с помощью
traceback.print_exc), если работает интерактивный цикл событий; он повторно поднимает исключение, если интерактивный цикл событий не запущен. - signalslist, optional
-
Если не None, signals — это список сигналов, которые обрабатываются этим регистром: попытка
processилиconnectк сигналу, отсутствующему в списке, вызываетValueError. По умолчанию, None, не ограничивает обрабатываемые сигналы.
- blocked(*, signal=None)[source]
-
Блокировать сигналы обратных вызовов от обработки.
Контекстный менеджер для временного блокирования/отключения сигналов обратных вызовов от обработки зарегистрированными слушателями.
- Parameters:
-
- signalstr, optional
-
Сигнал обратного вызова для блокирования. По умолчанию блокируются все сигналы.
- 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]
-
[Устарело] Очистить мертвые слабые ссылки из словаря.
Примечания
Устарело начиная с версии 3.8: Используйте нечто другое. Вам больше не нужно очищать Grouper.
- get_siblings(a)[source]
-
Возвращает все элементы, объединённые с a, включая сам себя.
- join(a, *args)[source]
-
Объединить заданные аргументы в один набор. Принимает один или несколько аргументов.
- joined(a, b)[source]
-
Возвращает, являются ли a и b членами одного набора.
- remove(a)[source]
-
Удалить a из группировщика, не делая ничего, если его там нет.
- classmatplotlib.cbook.GrouperView(grouper)[source]
-
Bases:
objectНеизменяемый вид на
Grouper.- get_siblings(a)[source]
- joined(a, b)[source]
- classmatplotlib.cbook.Stack(default=None)[source]
-
Bases:
object[Устарело] Стек элементов с перемещаемым курсором.
Имитирует навигацию назад/вперёд в веб-браузере.
Примечания
Устарело начиная с версии 3.8.
- 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
-
Позиция «усов».
Если число, то нижний ус находится в самой низкой точке данных, превышающей
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, необязательно
-
Количество раз, когда должны быть выполнены бутстрапинг (метод процентилей) для получения доверительных интервалов вокруг медианы.
- labelsсписок str, необязательно
-
Метки для каждого набора данных. Длина должна соответствовать размерам 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., 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()истинно, и мы охватываем все такие области.
- matplotlib.cbook.delete_masked_points(*args)[source]
-
Находит все замаскированные и/или нечисловые точки в наборе аргументов и возвращает аргументы, содержащие только незамаскированные точки.
Аргументы могут быть любого из 5 типов:
- Маскированные массивы 1-D
- Массивы 1-D ndarrays
- Массивы ndarrays с более чем одним измерением
- Другие итерируемые объекты, кроме строк
- любые другие
Первый аргумент должен принадлежать одному из первых четырёх типов; любой аргумент с длиной, отличающейся от длины первого аргумента (и, следовательно, любой аргумент 5-го типа) передаётся без изменений.
Маски получаются из всех аргументов с правильной длиной в категориях 1, 2 и 4; точка считается плохой, если она замаскирована в массиве с маской, или если это nan или inf. Не предпринимается попытка извлечь маску из категорий 2, 3 и 4, если
numpy.isfiniteне возвращает булев массив.Все входные аргументы, которые не передаются без изменений, возвращаются как ndarrays после удаления точек или строк, соответствующих маскам в любом из аргументов.
Ранее существенно более простая версия этой функции изначально была написана в качестве вспомогательной функции для 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]Автор: Композиция Хольгера Крекеля и Лютера Блиссета Из: https://code.activestate.com/recipes/121294/ и рецепт 1.12 в кулинарной книге
- matplotlib.cbook.get_sample_data(fname, asfileobj=True, *, np_load=<deprecated parameter>)[source]
-
Возвращает файл с образцовыми данными. fname — путь, относительный к каталогу
mpl-data/sample_data. Если asfileobj равноTrue, возвращает объект файла, в противном случае — просто путь к файлу.Файлы с образцовыми данными хранятся в каталоге 'mpl-data/sample_data' в пакете Matplotlib.
Если имя файла заканчивается на .gz, файл неявно распаковывается. Если имя файла заканчивается на .npy или .npz, и asfileobj равно
True, файл загружается с помощьюnumpy.load.
- matplotlib.cbook.index_of(y)[source]
-
Вспомогательная функция для создания разумных значений x для заданного y.
Используется для построения графиков (x, y), если значения x не заданы явно.
Сначала попробуйте
y.index(предполагая, что y —pandas.Series), если это не сработает, используйтеrange(len(y)).В будущем эта функция будет расширена для работы с более широким типом данных с метками.
- Параметры:
-
- yfloat или array-like
- Возвращает:
-
- 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': '-'}
-
Отображает полные имена стилей линии, используемые бэкендами, на их короткие коды.
- matplotlib.cbook.normalize_kwargs(kw, alias_mapping=None)[source]
-
Вспомогательная функция для нормализации входных данных kwarg.
- Параметры:
-
- kwdict или None
-
Словарь аргументов ключевых слов. None явно поддерживается и обрабатывается как пустой словарь, чтобы поддерживать функции с необязательным параметром в формате
props=None. - alias_mappingdict или подкласс Artist или экземпляр Artist, необязательно
-
Отображение между каноническим именем и списком псевдонимов в порядке приоритета от низшего к высшему.
Если каноническое значение не входит в список, считается, что оно имеет наивысший приоритет.
Если передан подкласс или экземпляр Artist, используется отображение его свойств alias.
- Исключения:
-
- 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, ...)
- stepsцелое число
- Возвращаемое значение:
-
- массив
-
форма
((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, так как оно позволяет более легко корректно закрывать вновь созданные объекты файлов.- Параметры:
-
- fnameстрока или объект, похожий на путь, или объект, похожий на файл
-
Если
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 для вычислений. См. раздел Возвращаемое значение ниже, чтобы узнать, какие ключи должны быть в словарях.- Параметры:
-
- Xarray-like
-
Данные выборки, которые будут использованы для построения оценок плотности гауссовой ядра. Должны иметь 2 или меньше измерений.
- methodcallable
-
Метод, используемый для вычисления оценки плотности ядра для каждого столбца данных. При вызове через
method(v, coords), он должен вернуть вектор значений оценки Плотности Ядра (KDE), вычисленной в значениях, указанных в coords. - pointsint, по умолчанию: 100
-
Определяет количество точек, в которых будет вычислена каждая из оценок плотности гауссового ядра.
- quantilesarray-like, по умолчанию: None
-
Определяет (если не равно None) список чисел с плавающей точкой в интервале [0, 1] для каждого столбца данных, представляющих квантили, которые будут отображаться для этого столбца данных. Должны иметь 2 или меньше измерений. 1D массив будет обрабатываться как одиночный список, содержащий их.
- Возвращаемое значение:
-
- list of dict
-
Список словарей, содержащих результаты для каждого столбца данных. Словари содержат по крайней мере следующие:
- 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/stable/api/cbook_api.html