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]
-
Псевдоним
matplotlib.backends.backend_template.FigureCanvasTemplate
- classmatplotlib.backends.backend_template.FigureCanvasTemplate(figure=None)[source]
-
Базовый класс:
matplotlib.backend_bases.FigureCanvasBaseПоверхность холста, на которую отрисовывается фигура. Вызывает методы draw и print fig, создает отрисовщики и т.д.
Примечание: шаблоны графических интерфейсов должны подключать события для нажатий кнопок, перемещений мыши и нажатий клавиш к функциям, которые вызывают методы базового класса button_press_event, button_release_event, motion_notify_event, key_press_event и key_release_event. Примеры см. в реализациях интерактивных бэкэндов.
- Атрибуты
-
-
figure
matplotlib.figure.Figure -
Объект Figure высокого уровня
-
figure
- draw()[source]
-
Отрисовка фигуры с использованием отрисовщика.
Важно, чтобы этот метод фактически проходил по дереву элементов, даже если вывод не создается, потому что это вызовет отложенную работу (например, вычисление автоматических пределов и значений меток), к которой пользователи могут получить доступ перед сохранением на диск.
- filetypes={'eps': 'Encapsulated Postscript', 'foo': 'Мой магический формат Foo', 'jpeg': 'Joint Photographic Experts Group', 'jpg': 'Joint Photographic Experts Group', 'pdf': 'Portable Document Format', 'pgf': 'PGF-код для LaTeX', 'png': 'Portable Network Graphics', 'ps': 'Postscript', 'raw': 'Растровое изображение в формате RGBA', 'rgba': 'Растровое изображение в формате RGBA', 'svg': 'Scalable Vector Graphics', 'svgz': 'Scalable Vector Graphics', 'tif': 'Tagged Image File Format', 'tiff': 'Tagged Image File Format'}
- get_default_filetype()[source]
-
Возвращает формат сохранения фигуры по умолчанию, указанный в %%%CODE_BLOCK_11%% (по умолчанию: %%%CODE_BLOCK_12%%).
Возвращаемая строка не включает точку. Этот метод переопределяется в бэкендах, которые поддерживают только один тип файла.
- print_foo(filename, *args, **kwargs)[source]
-
Запись в формате foo.
Этот метод обычно вызывается через
Figure.savefigиFigureCanvasBase.print_figure, которые позаботятся о настройке цвета фона, цвета рамки и dpi фигуры на желаемые значения выходных данных и восстановят их к исходным значениям. Поэтому,print_fooне нужно обрабатывать эти настройки.
- matplotlib.backends.backend_template.FigureManager[source]
-
Псевдоним
matplotlib.backends.backend_template.FigureManagerTemplate
- classmatplotlib.backends.backend_template.FigureManagerTemplate(canvas, num)[source]
-
Базовый класс:
matplotlib.backend_bases.FigureManagerBaseВспомогательный класс для режима pyplot, упаковывает все в аккуратный пакет.
Для неинтерактивных бэкэндов достаточно базового класса.
- classmatplotlib.backends.backend_template.GraphicsContextTemplate[source]
-
Базовый класс:
matplotlib.backend_bases.GraphicsContextBaseКонтекст графики предоставляет цвет, стили линий и т.д. См. бэкэнды cairo и postscript для примеров сопоставления атрибутов контекста графики (стили концов, стили соединения, толщины линий, цвета) с определенным бэкэндом. В cairo это делается путем обертывания объекта cairo.Context и перенаправления соответствующих вызовов к нему, используя словарь, сопоставляющий стили с константами gdk. В Postscript вся работа выполняется отрисовщиком, сопоставляющим стили линий с вызовами Postscript.
Если более уместно выполнять сопоставление на уровне отрисовщика (как в бэкенде Postscript), вам не нужно переопределять какие-либо методы GC. Если более уместно обернуть экземпляр (как в бэкенде cairo) и выполнять сопоставление здесь, вам необходимо переопределить несколько методов-селекторов.
В базовом контексте графики цвета хранятся в виде кортежа RGB в интервале единиц, например, (0,5, 0,0, 1,0). Вам может потребоваться сопоставить это с цветами, подходящими для вашего бэкэнда.
- classmatplotlib.backends.backend_template.RendererTemplate(dpi)[source]
-
Bases:
matplotlib.backend_bases.RendererBaseОтрисовщик обрабатывает операции рисования/рендеринга.
Это минимальный класс, который ничего не делает, и может использоваться для начала работы при написании нового бэкэнда. Обратитесь к
backend_bases.RendererBaseдля получения документации по методам.- draw_image(gc, x, y, im)[source]
-
Отрисовать RGBA изображение.
- Параметры
-
-
gc
GraphicsContextBase -
Контекст графики с информацией о обрезке.
- xскаляр
-
Расстояние в физических единицах (т.е., точки или пиксели) от левой стороны холста.
- yскаляр
-
Расстояние в физических единицах (т.е., точки или пиксели) от нижней стороны холста.
- im(N, M, 4) массив-подобный np.uint8
-
Массив RGBA пикселей.
-
transform
matplotlib.transforms.Affine2DBase -
Если и только если конкретный бэкэнд написан таким образом, что
option_scale_image()возвращаетTrue, может быть передано аффинное преобразование (т.е.,Affine2DBase) возможно вdraw_image(). Вектор смещения преобразования задается в физических единицах (т.е., точки или пиксели). Обратите внимание, что преобразование не переопределяет x и y и должно быть применено перед переводом результата на x и y (это можно сделать, добавив x и y к вектору смещения, определенному transform).
-
gc
- draw_path(gc, path, transform, rgbFace=None)[source]
-
Отрисовать объект
Pathс помощью заданного аффинного преобразования.
- draw_text(gc, x, y, s, prop, angle, ismath=False, mtext=None)[source]
-
Отрисовать текстовый объект.
- Параметры
-
-
gc
GraphicsContextBase -
Контекст графики.
- xfloat
-
Координата x текста в координатах отображения.
- yfloat
-
Координата y базовой линии текста в координатах отображения.
- sstr
-
Строка текста.
-
prop
matplotlib.font_manager.FontProperties -
Свойства шрифта.
- anglefloat
-
Угол поворота в градусах против часовой стрелки.
-
mtext
matplotlib.text.Text -
Исходный объект текста для отрисовки.
-
gc
Примечания
Примечание для разработчиков бэкэндов:
Когда вы пытаетесь определить, правильно ли вы получили прямоугольник обводки (что позволяет правильно настроить расположение/выравнивание текста), поможет изменить строку в 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 со свойством шрифта
FontPropertiesprop.
- new_gc()[source]
-
Возвращает экземпляр
GraphicsContextBase.
- points_to_pixels(points)[source]
-
Преобразовать точки в единицы отображения.
Вам нужно переопределить эту функцию (если ваш бэкэнд не имеет dpi, например, постскрипт или svg). Некоторые системы изображений предполагают некоторое значение для пикселей на дюйм:
points to pixels = points * pixels_per_inch/72 * dpi/72
- Параметры
-
- pointsfloat или массив-подобный
-
float или массив numpy float
- Возвращает
-
- Точки, преобразованные в пиксели
- matplotlib.backends.backend_template.draw_if_interactive()[source]
-
Для бэкендов изображений — не требуется. Для бэкендов графического интерфейса — это должно быть переопределено, если отрисовка должна выполняться в интерактивном режиме Python.
- matplotlib.backends.backend_template.new_figure_manager(num, *args, FigureClass=<class 'matplotlib.figure.Figure'>, **kwargs)[source]
-
Создать новый экземпляр менеджера фигур.
- matplotlib.backends.backend_template.new_figure_manager_given_figure(num, figure)[source]
-
Создать новый экземпляр менеджера фигур для заданной фигуры.
- matplotlib.backends.backend_template.show(*, block=None)[source]
-
Для бэкендов изображений — не требуется. Для бэкендов графического интерфейса — show() обычно является последней строкой скрипта pyplot и сообщает бэкенду, что пришло время рисовать. В интерактивном режиме это ничего не должно делать.
© 2012–2021 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.5.1/api/backend_template_api.html