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 -
псевдоним
matplotlib.backends.backend_template.FigureCanvasTemplate
-
class matplotlib.backends.backend_template.FigureCanvasTemplate(figure)[source] -
Базовый класс:
matplotlib.backend_bases.FigureCanvasBaseПоверхность холста, на которую отрисовывается фигура. Вызывает методы draw и print fig, создает объекты-рендереры и т. д.
Примечание: шаблоны GUI захотят подключить события нажатия кнопок, перемещения мыши и нажатия клавиш к функциям, которые вызывают методы базового класса button_press_event, button_release_event, motion_notify_event, key_press_event и key_release_event. Примеры см. в реализациях интерактивных бэкэндов.
Атрибуты: -
figurematplotlib.figure.Figure -
Экземпляр фигуры высокого уровня
-
draw(self)[source] -
Отрисовка фигуры с помощью рендерера.
-
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'}
-
get_default_filetype(self)[source] -
Возвращает формат файла сохранения по умолчанию, как указано в
rcParams["savefig.format"](по умолчанию:'png').Возвращаемая строка не включает точку. Этот метод переопределяется в бэкендах, которые поддерживают только один тип файла.
-
print_foo(self, filename, *args, **kwargs)[source] -
Запись формата foo. Значения dpi, facecolor и edgecolor восстанавливаются до первоначальных значений после этого вызова, поэтому вам не нужно их сохранять и восстанавливать.
-
-
matplotlib.backends.backend_template.FigureManager -
псевдоним
matplotlib.backends.backend_template.FigureManagerTemplate
-
class matplotlib.backends.backend_template.FigureManagerTemplate(canvas, num)[source] -
Базовый класс:
matplotlib.backend_bases.FigureManagerBaseВспомогательный класс для режима pyplot, объединяет все в аккуратный пакет.
Для неинтерактивных бэкэндов достаточно базового класса.
-
class matplotlib.backends.backend_template.GraphicsContextTemplate[source] -
Базовый класс:
matplotlib.backend_bases.GraphicsContextBaseКонтекст графики предоставляет цвет, стили линий и т. д. Примеры см. в бэкендах cairo и postscript, отображающих атрибуты контекста графики (стили концов, стили соединений, ширины линий, цвета) для конкретного бэкэнда. В cairo это делается путем обертывания объекта cairo.Context и перенаправления соответствующих вызовов на него с помощью словаря, сопоставляющего стили с константами gdk. В Postscript вся работа выполняется рендерером, сопоставляющим стили линий с вызовами Postscript.
Если более уместно выполнять сопоставление на уровне рендерера (как в бэкэнде Postscript), вам не нужно переопределять ни один из методов GC. Если более уместно обернуть экземпляр (как в бэкэнде cairo) и выполнить сопоставление здесь, вам необходимо переопределить несколько методов-сеттеров.
Базовый GraphicsContext хранит цвета в виде кортежа RGB в диапазоне от 0 до 1, например, (0.5, 0.0, 1.0). Возможно, вам нужно будет сопоставить его с цветами, подходящими для вашего бэкэнда.
-
class matplotlib.backends.backend_template.RendererTemplate(dpi)[source] -
Bases:
matplotlib.backend_bases.RendererBaseРендерер обрабатывает операции рисования/рендеринга.
Это минимальный класс «ничего не делающий», который можно использовать для начала работы при написании нового бэкенда. Обратитесь к
backend_bases.RendererBaseза документацией по методам.-
draw_image(self, gc, x, y, im)[source] -
Отобразить изображение RGBA.
Параметры: -
gcGraphicsContextBase -
Контекст графики с информацией о обрезке.
-
xscalar -
Расстояние в физических единицах (т. е. точках или пикселях) от левой стороны холста.
-
yscalar -
Расстояние в физических единицах (т. е. точках или пикселях) от нижней стороны холста.
-
imarray-like, shape=(N, M, 4), dtype=np.uint8 -
Массив пикселей RGBA.
-
transformmatplotlib.transforms.Affine2DBase -
Если и только если конкретный бэкенд написан таким образом, что
option_scale_image()возвращаетTrue, может быть передана аффинная трансформация (т. е.Affine2DBase) может быть передана вdraw_image(). Вектор переноса трансформации задан в физических единицах (т. е. точках или пикселях). Обратите внимание, что преобразование не переопределяет x и y и должно применяться до преобразования результата на x и y (это можно сделать, добавив x и y к вектору переноса, определенному transform).
-
-
draw_path(self, gc, path, transform, rgbFace=None)[source] -
Отобразить экземпляр
Pathс использованием заданного аффинного преобразования.
-
draw_text(self, gc, x, y, s, prop, angle, ismath=False, mtext=None)[source] -
Отобразить экземпляр текста.
Параметры: -
gcGraphicsContextBase -
Контекст графики.
-
xfloat -
Положение x текста в координатах отображения.
-
yfloat -
Положение y базовой линии текста в координатах отображения.
-
sstr -
Строка текста.
-
propmatplotlib.font_manager.FontProperties -
Свойства шрифта.
-
anglefloat -
Угол поворота в градусах против часовой стрелки.
-
mtextmatplotlib.text.Text -
Исходный объект текста для рендеринга.
Примечания
Примечание для разработчиков бэкендов:
При попытке определить, правильно ли вы получили прямоугольник обрезки (что необходимо для правильной работы выравнивания текста), полезно изменить строку в тексте.py:
if 0: bbox_artist(self, renderer)
на if 1, а затем прямоугольник обрезки будет нанесен вместе с вашим текстом.
-
-
flipy(self)[source] -
Возвращает, увеличиваются ли значения y сверху вниз.
Обратите внимание, что это влияет только на отображение текста и изображений.
-
get_canvas_width_height(self)[source] -
Возвращает ширину и высоту холста в координатах отображения.
-
get_text_width_height_descent(self, s, prop, ismath)[source] -
Получить ширину, высоту и спуск (смещение снизу до базовой линии) в координатах отображения строки s со
FontPropertiesprop.
-
new_gc(self)[source] -
Возвращает экземпляр
GraphicsContextBase.
-
points_to_pixels(self, points)[source] -
Преобразовать точки в единицы отображения.
Вам нужно переопределить эту функцию (если ваш бэкенд не имеет dpi, например, postscript или svg). Некоторые системы отображения предполагают некоторое значение для пикселей на дюйм:
points to pixels = points * pixels_per_inch/72 * dpi/72
Параметры: -
pointsfloat or array-like -
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–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.3.3/api/backend_template_api.html