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. Примеры см. в реализациях интерактивных бэкендов.
- Атрибуты:
-
-
figure
Figure -
Экземпляр Figure высокого уровня
-
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.
- Параметры:
-
-
gc
GraphicsContextBase -
Графический контекст с информацией об обрезке.
- xfloat
-
Расстояние от левого края холста в физических единицах (то есть в точках или пикселях).
- yfloat
-
Расстояние от нижнего края холста в физических единицах (то есть в точках или пикселях).
-
imмассив (N, M, 4) типа
numpy.uint8 -
Массив пикселей RGBA.
-
transform
Affine2DBase -
Если и только если конкретный бэкенд реализован так, что
option_scale_imageвозвращаетTrue, вdraw_imageможно передать аффинное преобразование (то естьAffine2DBase). Вектор переноса преобразования задаётся в физических единицах (то есть в точках или пикселях). Обратите внимание: преобразование не заменяет x и y; его необходимо применить до переноса результата на x и y (для этого можно прибавить x и y к вектору переноса, заданному в transform).
-
gc
- draw_path(gc, path, transform, rgbFace=None)[исходный код]
-
Нарисовать экземпляр
Pathс помощью заданного аффинного преобразования.
- draw_text(gc, x, y, s, prop, angle, ismath=False, mtext=None)[исходный код]
-
Нарисовать текстовый объект.
- Параметры:
-
-
gc
GraphicsContextBase -
Графический контекст.
- xfloat
-
Координата x текста в координатах отображения.
- yfloat
-
Координата y базовой линии текста в координатах отображения.
- sstr
-
Текстовая строка.
-
prop
FontProperties -
Свойства шрифта.
- anglefloat
-
Угол поворота в градусах против часовой стрелки.
- ismathbool или "TeX"
-
Если True, использовать парсер mathtext.
-
mtext
Text -
Исходный текстовый объект для отображения.
-
gc
Примечания
Примечания для разработчиков бэкендов:
RendererBase.draw_textтакже поддерживает передачу значения "TeX" параметру ismath для отображения с помощью TeX, однако для полноценных бэкендов отображения это необязательно; многие встроенные бэкенды эту возможность не поддерживают. Вместо этого отображение TeX реализуется методомdraw_tex.
- flipy()[исходный код]
-
Возвращает, увеличиваются ли значения y сверху вниз.
Обратите внимание, что это влияет только на отрисовку текста.
- get_canvas_width_height()[исходный код]
-
Возвращает ширину и высоту холста в координатах отображения.
- get_text_width_height_descent(s, prop, ismath)[исходный код]
-
Возвращает ширину, высоту и глубину (расстояние от нижнего края до базовой линии) строки s в координатах отображения с параметрами
FontPropertiesprop.Пробелы в начале и в конце 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