matplotlib.cbook
Коллекция служебных функций и классов. Первоначально многие (но не все) были из «Python Cookbook» — отсюда и название cbook.
Этот модуль безопасно импортировать из любой точки Matplotlib; он импортирует Matplotlib только во время выполнения.
- класс
matplotlib.cbook.CallbackRegistry(exception_handler=<функция _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вызываемый объект, необязательно
-
Если не None, exception_handler должен быть функцией, которая принимает исключение
Exceptionв качестве единственного параметра. Она вызывается с любым исключениемException, которое возникает в обратных вызовах во времяCallbackRegistry.process, и может либо повторно поднять исключение, либо обработать его другим способом.Обработчик по умолчанию выводит исключение (с помощью
traceback.print_exc), если запущен интерактивный цикл событий; он повторно поднимает исключение, если интерактивный цикл событий не запущен.
-
connect(signal, func)[source] -
Зарегистрировать func для вызова при генерации сигнала signal.
-
disconnect(cid)[source] -
Отключить зарегистрированный обратный вызов с идентификатором обратного вызова cid.
Ошибка не генерируется, если такой обратный вызов не существует.
-
process(s, *args, **kwargs)[source] -
Обработать сигнал s.
Все функции, зарегистрированные для получения обратных вызовов по s, будут вызваны с
*argsи**kwargs.
- класс
matplotlib.cbook.Grouper(init=())[source] -
Базы:
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, включая сам a.
-
join(a, *args)[source] -
Объединяет заданные аргументы в одно множество. Принимает один или несколько аргументов.
-
joined(a, b)[source] -
Возвращает, являются ли a и b членами одного и того же множества.
-
remove(a)[source]
-
- исключение
matplotlib.cbook.IgnoredKeywordWarning(*args, **kwargs)[source] -
Базы:
UserWarning[Устаревший] Класс для выдачи предупреждений о ключевых словах аргументов, которые будут проигнорированы Matplotlib.
Замечания
Устарел начиная с версии 3.3.
- class
matplotlib.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-й процентиль) 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.delete_masked_points(*args)[source] -
Находит все замаскированные и/или нечисловые точки в наборе аргументов и возвращает аргументы с оставшимися только незамаскированными точками.
Аргументы могут быть в любой из 5 категорий:
- 1-D masked массивы
- 1-D ndarrays
- ndarrays с более чем одним измерением
- другие итерируемые объекты, не являющиеся строками
- любое другое
Первый аргумент должен быть в одной из первых четырёх категорий; любой аргумент с длиной, отличающейся от длины первого аргумента (и, следовательно, любой аргумент в категории 5), передаётся без изменений.
Маски получают из всех аргументов правильной длины в категориях 1, 2 и 4; точка считается плохой, если она замаскирована в массиве с маской или является NaN или inf. Не предпринимается попытка извлечь маску из категорий 2, 3 и 4, если
numpy.isfiniteне возвращает массив Boolean.Все входные аргументы, которые не передаются без изменений, возвращаются как ndarrays после удаления точек или строк, соответствующих маскам в любом из аргументов.
Значительно более простая версия этой функции первоначально была написана в качестве вспомогательной функции для Axes.scatter().
-
matplotlib.cbook.deprecated(*args, **kwargs)[source] -
[Устаревшее]
Примечания
Устарело начиная с версии 3.4:
-
matplotlib.cbook.file_requires_unicode(x)[source] -
Возвращает значение, указывающее, требует ли данный объект файла для записи 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_realpath_and_stat(path)[source] -
[Устаревшее]
Примечания
Устарело начиная с версии 3.3:
-
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 или array-like
Возвращает: - x, yndarray
-
Значения x и y для построения графика.
-
matplotlib.cbook.is_math_text(s)[source] -
Возвращает True, если строка s содержит математические выражения.
Это делается путём проверки наличия чётного числа неэкранированных знаков доллара в s.
-
matplotlib.cbook.is_scalar_or_string(val)[source] -
Возвращает значение, указывающее, является ли данный объект скаляром или строкой.
-
matplotlib.cbook.is_writable_file_like(obj)[source] -
Возвращает значение, указывающее, похож ли obj на объект файла с методом write.
-
matplotlib.cbook.local_over_kwdict(local_var, kwargs, *keys)[source] -
[Устаревшее] Обеспечивает приоритет локальной переменной над потенциально конфликтующими аргументами из словаря kwargs. Рассматриваются следующие возможные выходные значения в порядке приоритета:
local_var > kwargs[keys[0]] > ... > kwargs[keys[-1]]
Первое из этих значений, отличное от None, будет возвращено. Если все они None, возвращается None. Каждый ключ в keys удаляется из словаря kwargs на месте.
Параметры: - local_varлюбой объект
-
Локальная переменная (высший приоритет).
- kwargsdict
-
Словарь ключевых аргументов; модифицируется на месте.
- keysстрока(и)
-
Название(я) ключевых аргументов для обработки, в порядке убывания приоритета.
Возвращает: - любой объект
-
Либо local_var, либо одно из kwargs[key] для key в keys.
Исключения: - IgnoredKeywordWarning
-
Для каждого ключа в keys, который удаляется из kwargs, но не используется в качестве выходного значения.
Примечания
Устарело начиная с версии 3.3.
-
matplotlib.cbook.ls_mapper= {'-': 'solid', '--': 'dashed', '-.': 'dashdot', ':': 'dotted'} -
Преобразует короткие коды стилей линии в их полные имена, используемые бэкендами.
-
matplotlib.cbook.ls_mapper_r= {'dashdot': '-.', 'dashed': '--', 'dotted': ':', 'solid': '-'} -
Преобразует полные имена стилей линии, используемые бэкендами, в их короткие коды.
- class
matplotlib.cbook.maxdict(maxsize)[source] -
Bases:
dictСловарь с максимальным размером.
Примечания
Это не переопределяет все соответствующие методы для ограничения размера, только
__setitem__, поэтому используйте с осторожностью.
-
matplotlib.cbook.normalize_kwargs(kw, alias_mapping=None, required=, forbidden= , allowed= )[source] -
Функция-помощник для нормализации входящих аргументов kwarg.
Порядок их разрешения:
- алиасинг
- обязательные
- запрещенные
- разрешенные
Этот порядок означает, что только канонические имена должны присутствовать в allowed, forbidden, required.
Параметры: - kwdict или None
-
Словарь аргументов ключевых слов. None явным образом поддерживается и обрабатывается как пустой словарь, чтобы поддерживать функции с необязательным параметром в формате
props=None. - alias_mappingdict или подкласс Artist или экземпляр Artist, необязательно
-
Сопоставление между каноническим именем и списком псевдонимов в порядке приоритета от низшего к высшему.
Если каноническое значение не находится в списке, предполагается, что у него самый высокий приоритет.
Если передается подкласс или экземпляр Artist, используется его отображение алиасов.
- requiredсписок str, необязательно
-
Список ключей, которые должны присутствовать в kws. Этот параметр устарел.
- forbiddenсписок str, необязательно
-
Список ключей, которые не должны присутствовать в kw. Этот параметр устарел.
- allowedсписок str, необязательно
-
Список разрешенных полей. Если это не None, то возникнет исключение, если kw содержит ключи, которые не входят в объединение required и allowed. Чтобы разрешить только необходимые поля, передайте пустой кортеж
allowed=(). Этот параметр устарел.
Исключения: - TypeError
-
Чтобы соответствовать тому, что поднимает Python, если неверные args/kwargs передаются вызываемому объекту.
-
matplotlib.cbook.open_file_cm(path_or_file, mode='r', encoding=None)[source] -
Передача файловых объектов и управление контекстом для path-like.
-
matplotlib.cbook.print_cycles(objects, outstream=, 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.report_memory(i=0)[source] -
Возвращает память, потребляемую процессом.
-
matplotlib.cbook.safe_first_element(obj)[source] -
Возвращает первый элемент в obj.
Это независимый от типа способ получения первого элемента, поддерживающий как доступ по индексу, так и протокол итератора.
-
matplotlib.cbook.safe_masked_invalid(x, copy=False)[source]
-
matplotlib.cbook.sanitize_sequence(data)[source] -
Преобразование объектов dictview в список. Другие входные данные возвращаются без изменений.
- class
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)точек между каждыми исходными значениями; значения интерполируются линейно.Параметры: - 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вместо этого, так как он позволяет более легко правильно закрывать недавно созданные объекты файлов.Параметры: - 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 для выполнения расчетов. Смотрите раздел Возвращает ниже для ключей, которые должны быть присутствовать в словарях.Параметры: - Xподобный массиву
-
Данные выборки, которые будут использоваться для создания оценок плотности гауссовой ядра. Должен иметь 2 или меньше измерений.
- methodвызываемая
-
Метод, используемый для вычисления оценки плотности ядра для каждого столбца данных. При вызове через
method(v, coords), он должен возвращать вектор значений KDE, вычисленных в значениях, указанных в coords. - pointsint, по умолчанию: 100
-
Определяет количество точек, для которых вычисляется каждая из оценок плотности гауссова ядра.
- quantilesподобный массиву, по умолчанию: None
-
Определяет (если не None) список чисел с плавающей точкой в интервале [0, 1] для каждого столбца данных, который представляет собой квантили, которые будут отображаться для этого столбца данных. Должен иметь 2 или меньше измерений. 1D массив будет рассматриваться как список из одного элемента, содержащий их.
Возвращает: - список словарей
-
Список словарей, содержащих результаты для каждого столбца данных. Словари содержат по крайней мере следующее:
- coords: Список скаляров, содержащих координаты, в которых была вычислена эта оценка плотности ядра.
- vals: Список скаляров, содержащих значения оценки плотности ядра в каждой из координат, заданных в coords.
- mean: Среднее значение для этого столбца данных.
- median: Медианное значение для этого столбца данных.
- min: Минимальное значение для этого столбца данных.
- max: Максимальное значение для этого столбца данных.
- quantiles: Значения квантилей для этого столбца данных.
-
matplotlib.cbook.warn_deprecated(*args, **kwargs)[source] -
[Устарело]
Примечания
Устарело начиная с версии 3.4:
© 2012–2021 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.4.3/api/cbook_api.html