Spec-Zone.ru › Matplotlib 3.2

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

Поверхность холста, на которую отрисовывается фигура. Вызывает методы рисования и вывода, создаёт рендереры и т.д.

Примечание: шаблоны графических интерфейсов должны подключать события для нажатий кнопок, перемещения мыши и нажатий клавиш к функциям, которые вызывают методы базового класса 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]

Получение формата сохранения фигуры по умолчанию, как указано в rcParam savefig.format. Возвращаемая строка исключает точку. Переопределяется в бэкендах, которые поддерживают только один тип файла.

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,5, 0,0, 1,0). Вам может потребоваться сопоставить это с цветами, подходящими для вашего бэкэнда.

END_OF_DOCUMENT_MARKER
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, аффинное преобразование может быть передано в draw_image(). Оно имеет вид экземпляра Affine2DBase. Вектор переноса преобразования задается в физических единицах (т.е. точках или пикселях). Обратите внимание, что преобразование не переопределяет 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

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

Примечания

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

При попытке определить, правильно ли вы получили прямоугольник обрезки (что позволяет корректно работать с расположением и выравниванием текста), полезно изменить строку в 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 со FontProperties prop

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

вещественное число или массив numpy вещественных чисел

Возвращает:
Преобразованные в пиксели точки
matplotlib.backends.backend_template.draw_if_interactive() [source]

Для бэкэндов изображений — не требуется. Для бэкэндов GUI — это должно быть переопределено, если отрисовка должна выполняться в интерактивном режиме 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]

Для бэкэндов изображений — не требуется. Для бэкэндов GUI — show() обычно является последней строкой скрипта pyplot и сообщает бэкэнду, что пора рисовать. В интерактивном режиме это не должно ничего делать.

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

Spec-Zone.ru

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