Spec-Zone.ru › Matplotlib

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[исходный код]

псевдоним FigureCanvasTemplate

classmatplotlib.backends.backend_template.FigureCanvasTemplate(figure=None)[исходный код]

Базовые классы: FigureCanvasBase

Холст, на котором отображается изображение. Вызывает методы отрисовки и вывода изображения, создаёт рендереры и т. д.

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

Атрибуты:
figureFigure

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

draw()[исходный код]

Отрисовать изображение с помощью рендерера.

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

filetypes={'eps': 'Encapsulated Postscript', 'foo': 'My magic Foo format', 'jpeg': 'Joint Photographic Experts Group', 'jpg': 'Joint Photographic Experts Group', 'pdf': 'Portable Document Format', 'pgf': 'PGF code for LaTeX', 'png': 'Portable Network Graphics', 'ps': 'Postscript', 'raw': 'Raw RGBA bitmap', 'rgba': 'Raw RGBA bitmap', 'svg': 'Scalable Vector Graphics', 'svgz': 'Scalable Vector Graphics', 'tif': 'Tagged Image File Format', 'tiff': 'Tagged Image File Format', 'webp': 'WebP Image Format'}
get_default_filetype()[исходный код]

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

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

manager_class[исходный код]

псевдоним FigureManagerTemplate

print_foo(filename, **kwargs)[исходный код]

Записать файл в формате foo.

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

matplotlib.backends.backend_template.FigureManager[исходный код]

псевдоним FigureManagerTemplate

classmatplotlib.backends.backend_template.FigureManagerTemplate(canvas, num)[исходный код]

Базовые классы: FigureManagerBase

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

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

classmatplotlib.backends.backend_template.GraphicsContextTemplate[исходный код]

Базовые классы: GraphicsContextBase

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

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

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

classmatplotlib.backends.backend_template.RendererTemplate(dpi)[исходный код]

Базовые классы: RendererBase

Рендерер выполняет операции рисования и отображения.

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

draw_image(gc, x, y, im)[исходный код]

Нарисовать изображение RGBA.

Параметры:
gcGraphicsContextBase

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

xfloat

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

yfloat

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

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

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

transformAffine2DBase

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

draw_path(gc, path, transform, rgbFace=None)[исходный код]

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

draw_text(gc, x, y, s, prop, angle, ismath=False, mtext=None)[исходный код]

Нарисовать текстовый объект.

Параметры:
gcGraphicsContextBase

Графический контекст.

xfloat

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

yfloat

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

sstr

Текстовая строка.

propFontProperties

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

anglefloat

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

ismathbool или "TeX"

Если True, использовать парсер mathtext.

mtextText

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

Примечания

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

RendererBase.draw_text также поддерживает передачу значения "TeX" параметру ismath для отображения с помощью TeX, однако для полноценных бэкендов отображения это необязательно; многие встроенные бэкенды эту возможность не поддерживают. Вместо этого отображение TeX реализуется методом draw_tex.

flipy()[исходный код]

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

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

get_canvas_width_height()[исходный код]

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

get_text_width_height_descent(s, prop, ismath)[исходный код]

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

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

new_gc()[исходный код]

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

points_to_pixels(points)[исходный код]

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

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

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

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

Spec-Zone.ru

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