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. Примеры см. в реализациях интерактивных бэкэндов.
- Атрибуты:
-
-
figure
Figure -
Экземпляр фигуры высокого уровня
-
figure
- draw()[source]
-
Отрисовка фигуры с использованием отрисовщика.
Важно, чтобы этот метод действительно проходил по дереву элементов, даже если вывод не производится, потому что это вызовет отложенную работу (например, вычисление автоматических пределов и значений меток), к которой пользователи могут получить доступ перед сохранением в файл.
- filetypes={'eps': 'Postscript encapsuliрованный', 'foo': 'Мой волшебный формат Foo', 'jpeg': 'Группа экспертов по изображению JPEG', 'jpg': 'Группа экспертов по изображению JPEG', '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, которые заботятся о настройке цвета фона, цвета обводки и разрешения фигуры до желаемых выходных значений и восстановят их до исходных значений. Поэтому,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]
-
Bases:
RendererBaseРендерер обрабатывает операции рисования/рендеринга.
Это минимальный класс без действий, который можно использовать для начала работы при написании нового бэкэнда. Обратитесь к
backend_bases.RendererBaseза документацией по методам.- draw_image(gc, x, y, im)[source]
-
Отобразить изображение RGBA.
- Параметры:
-
-
gc
GraphicsContextBase -
Графический контекст с информацией о обрезке.
- xскаляр
-
Расстояние в физических единицах (т.е. точки или пиксели) от левой стороны холста.
- yскаляр
-
Расстояние в физических единицах (т.е. точки или пиксели) от нижней стороны холста.
-
im(N, M, 4) массив
numpy.uint8 -
Массив пикселей RGBA.
-
transform
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
FontProperties -
Свойства шрифта.
- anglefloat
-
Угол поворота в градусах против часовой стрелки.
- ismathbool или "TeX"
-
Если True, использовать парсер mathtext. Если "TeX", использовать tex для рендеринга.
-
mtext
Text -
Исходный объект текста для рендеринга.
-
gc
- flipy()[source]
-
Возвращает, увеличиваются ли значения y сверху вниз.
Обратите внимание, что это влияет только на отображение текстов.
- get_canvas_width_height()[source]
-
Возвращает ширину и высоту холста в координатах отображения.
- get_text_width_height_descent(s, prop, ismath)[source]
-
Получить ширину, высоту и спуск (смещение от низа к базовой линии) в координатах отображения строки s со свойствами шрифта
FontPropertiesprop.Пробелы в начале и конце s включены в расчетную ширину.
- new_gc()[source]
-
Возвращает экземпляр
GraphicsContextBase.
- points_to_pixels(points)[source]
-
Преобразовать точки в единицы отображения.
Необходимо переопределить эту функцию (если у вашего бэкэнда нет dpi, например, postscript или svg). Некоторые системы обработки изображений предполагают некоторое значение для пикселей на дюйм:
points to pixels = points * pixels_per_inch/72 * dpi/72
- Параметры:
-
- pointsfloat или array-like
- Возвращает:
-
- Точки, преобразованные в пиксели
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/backend_template_api.html