Spec-Zone.ru › Matplotlib 3.8

matplotlib.backends.backend_template

Полностью функциональный, но ничего не делающий бэкенд, предназначенный как шаблон для разработчиков бэкэндов. Он полностью функционален в том смысле, что вы можете выбрать его в качестве бэкенда, например, с помощью

import matplotlib
matplotlib.use("template")

и ваша программа (должна!) запустится без ошибок, хотя вывод не будет произведён. Это даёт отправную точку для разработчиков бэкэндов; вы можете выборочно реализовать методы отрисовки (draw_path, draw_image и т.д.) и постепенно наблюдать, как ваша фигура оживает, вместо того чтобы реализовывать полную версию перед получением каких-либо результатов.

Скопируйте этот файл в каталог вне дерева исходных текстов Matplotlib, где Python может его импортировать (добавив каталог в ваш sys.path или упаковав его как обычный пакет Python); если бэкенд импортируется как import my.backend, вы можете выбрать его с помощью

import matplotlib
matplotlib.use("module://my.backend")

Если ваш бэкенд реализует поддержку сохранения фигур (т.е. имеет метод print_xyz), вы можете зарегистрировать его как обработчик по умолчанию для данного типа файла:

from matplotlib.backend_bases import register_backend
register_backend('xyz', 'my_backend', 'XYZ File Format')
...
plt.savefig("figure.xyz")
matplotlib.backends.backend_template.FigureCanvas[source]

псевдоним FigureCanvasTemplate

classmatplotlib.backends.backend_template.FigureCanvasTemplate(figure=None)[source]

Базы: FigureCanvasBase

Поверхность холста, на которую отрисовывается фигура. Вызывает методы draw и print fig, создаёт рендереры и т.д.

Примечание: шаблоны GUI должны подключать события для нажатий кнопок, перемещения мыши и нажатия клавиш к функциям, которые вызывают методы базового класса button_press_event, button_release_event, motion_notify_event, key_press_event и key_release_event. См. реализации интерактивных бэкэндов для примеров.

Атрибуты:
figureFigure

Экземпляр фигуры высокого уровня

draw()[source]

Отрисовка фигуры с помощью рендерера.

Важно, чтобы этот метод фактически обходил дерево элементов, даже если вывод не производится, потому что это запустит отложенную работу (например, вычисление пределов, автоматических пределов и значений делений), к которой пользователи могут получить доступ перед сохранением на диск.

filetypes={'eps': 'PostScript с вложением', 'foo': 'Мой волшебный формат Foo', 'jpeg': 'Группа экспертов по совместной фотографии', 'jpg': 'Группа экспертов по совместной фотографии', 'pdf': 'Портативный формат документов', 'pgf': 'Код PGF для LaTeX', 'png': 'Портативная сетевая графика', 'ps': 'PostScript', 'raw': 'Необработанное RGBA-растровое изображение', 'rgba': 'Необработанное RGBA-растровое изображение', 'svg': 'Векторная графика с масштабированием', 'svgz': 'Векторная графика с масштабированием', 'tif': 'Формат файла изображения TIFF', 'tiff': 'Формат файла изображения TIFF', 'webp': 'Формат изображения WebP'}
get_default_filetype()[source]

Возвращает формат файла сохранения по умолчанию, как указано в rcParams["savefig.format"] (по умолчанию: 'png').

Возвращаемая строка не включает точку. Этот метод переопределён в бэкендах, которые поддерживают только один тип файла.

manager_class[source]

псевдоним FigureManagerTemplate

print_foo(filename, **kwargs)[source]

Запись формата foo.

Этот метод обычно вызывается через Figure.savefig и FigureCanvasBase.print_figure, которые заботятся о настройке цвета фона фигуры, цвета контура и DPI до желаемых выходных значений и восстановят их до исходных значений. Поэтому print_foo не нужно обрабатывать эти настройки.

matplotlib.backends.backend_template.FigureManager[source]

псевдоним FigureManagerTemplate

classmatplotlib.backends.backend_template.FigureManagerTemplate(canvas, num)[source]

Базы: FigureManagerBase

Вспомогательный класс для режима pyplot, упаковывает всё в аккуратный пакет.

Для неинтерактивных бэкэндов достаточно базового класса. Для интерактивных бэкэндов см. документацию класса FigureManagerBase для списка методов, которые можно/следует переопределить.

classmatplotlib.backends.backend_template.GraphicsContextTemplate[source]

Базы: GraphicsContextBase

Контекст графики предоставляет цвет, стили линий и т. д. См. бэкэнды cairo и postscript для примеров сопоставления атрибутов контекста графики (стили закругления, стили соединения, ширины линий, цвета) с конкретным бэкэндом. В cairo это делается путём обертывания объекта cairo.Context и переадресацией соответствующих вызовов к нему с помощью словаря, отображающего стили в константы gdk. В Postscript вся работа выполняется рендерером, сопоставляющим стили линий с вызовами Postscript.

Если более уместно выполнять сопоставление на уровне рендерера (как в бэкенде postscript), вам не нужно переопределять ни один из методов GC. Если уместнее обернуть экземпляр (как в бэкенде cairo) и выполнить сопоставление здесь, вам нужно будет переопределить несколько методов установки.

Базовый GraphicsContext хранит цвета как кортеж RGB в интервале единицы, например, (0,5, 0,0, 1,0). Возможно, вам потребуется сопоставить это с цветами, соответствующими вашему бэкенду.

classmatplotlib.backends.backend_template.RendererTemplate(dpi)[source]

Базы: RendererBase

Отобразитель обрабатывает операции рисования/рендеринга.

Это минимальный класс без действий, который можно использовать для начала работы при написании нового бэкэнда. Обратитесь к backend_bases.RendererBase за документацией по методам.

draw_image(gc, x, y, im)[source]

Отобразить изображение RGBA.

Параметры:
gcGraphicsContextBase

Контекст графики с информацией о обрезке.

xскаляр

Расстояние в физических единицах (т. е. точки или пиксели) от левой стороны холста.

yскаляр

Расстояние в физических единицах (т. е. точки или пиксели) от нижней стороны холста.

im(N, M, 4) массив numpy.uint8

Массив пикселей RGBA.

transformAffine2DBase

Если и только если конкретный бэкэнд написан таким образом, что option_scale_image возвращает True, может быть передано аффинное преобразование (т. е. Affine2DBase) может быть передано в draw_image. Вектор переноса преобразования задается в физических единицах (т. е. точки или пиксели). Обратите внимание, что преобразование не переопределяет x и y и должно быть применено перед переводом результата на x и y (это можно сделать, добавив x и y к вектору переноса, определенному transform).

draw_path(gc, path, transform, rgbFace=None)[source]

Отобразить экземпляр Path с использованием заданного аффинного преобразования.

draw_text(gc, x, y, s, prop, angle, ismath=False, mtext=None)[source]

Отобразить экземпляр текста.

Параметры:
gcGraphicsContextBase

Контекст графики.

xfloat

Положение x текста в координатах отображения.

yfloat

Положение базовой линии y текста в координатах отображения.

sstr

Строка текста.

propFontProperties

Свойства шрифта.

anglefloat

Угол поворота в градусах против часовой стрелки.

ismathbool или "TeX"

Если True, используйте парсер mathtext. Если "TeX", используйте tex для рендеринга.

mtextText

Исходный объект текста для рендеринга.

Примечания

Примечание для разработчиков бэкэндов:

Когда вы пытаетесь определить, правильно ли вы получили свою область обрезки (что позволяет правильно работать с форматированием/выравниванием текста), полезно изменить строку в text.py:

if 0: bbox_artist(self, renderer)

на if 1, и тогда фактическая область обрезки будет нарисована вместе с вашим текстом.

flipy()[source]

Возвращает, увеличиваются ли значения y сверху вниз.

Обратите внимание, что это влияет только на отображение текста.

get_canvas_width_height()[source]

Возвращает ширину и высоту холста в координатах отображения.

get_text_width_height_descent(s, prop, ismath)[source]

Возвращает ширину, высоту и спуск (смещение от низа до базовой линии) в координатах отображения строки s со свойствами шрифта FontProperties prop.

Пробелы в начале и конце s включаются в расчет ширины.

new_gc()[source]

Возвращает экземпляр GraphicsContextBase.

points_to_pixels(points)[source]

Преобразовать точки в единицы отображения.

Вам необходимо переопределить эту функцию (если ваш бэкэнд не имеет dpi, например, postscript или svg). Некоторые системы обработки изображений предполагают некоторое значение для пикселей на дюйм:

points to pixels = points * pixels_per_inch/72 * dpi/72
Параметры:
pointsfloat или массив-подобный объект
Возвращает:
Точки, преобразованные в пиксели

© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.8.4/api/backend_template_api.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API