backend_agg
Бэкенд Anti-Grain Geometry (AGG).
Реализованные возможности:
- стили обводки и соединений
- штрихи
- ширина линии
- линии, прямоугольники, эллипсы
- обрезка до прямоугольника
- вывод в RGBA и поддерживаемые Pillow форматы изображений
- альфа-смешивание
- правильное масштабирование с DPI — все масштабируется правильно (штрихи, ширина линий и т. д.)
- рисование многоугольников
- freetype2 с ft2font
Осталось сделать:
- интеграция разрешения экрана с ppi и текстом
- matplotlib.backends.backend_agg.FigureCanvas[source]
- classmatplotlib.backends.backend_agg.FigureCanvasAgg(figure=None)[source]
-
Базы:
matplotlib.backend_bases.FigureCanvasBase- buffer_rgba()[source]
-
Получить изображение как
memoryviewв буфер отрисовщика.drawнеобходимо вызвать хотя бы один раз перед использованием этой функции и для обновления отрисовщика в случае последующих изменений в Figure.
- copy_from_bbox(bbox)[source]
- draw()[source]
-
Отобразить
Figure.Важно, чтобы этот метод действительно проходил по дереву элементов, даже если вывод не производится, так как это запустит отложенную работу (например, вычисление автомасштабирования и значений делений), к которой пользователи могут получить доступ перед сохранением на диск.
- get_renderer(cleared=False)[source]
- print_jpeg(filename_or_obj, *args, pil_kwargs=None, **kwargs)[source]
-
Записать изображение в файл JPEG.
- Параметры
-
- filename_or_objstr или path-like или file-like
-
Файл для записи.
- Дополнительные параметры
-
- pil_kwargsdict, необязательно
-
Дополнительные ключевые аргументы, передаваемые в
PIL.Image.Image.saveпри сохранении изображения.
- print_jpg(filename_or_obj, *args, pil_kwargs=None, **kwargs)[source]
-
Записать изображение в файл JPEG.
- Параметры
-
- filename_or_objstr или path-like или file-like
-
Файл для записи.
- Дополнительные параметры
-
- pil_kwargsdict, необязательно
-
Дополнительные ключевые аргументы, передаваемые в
PIL.Image.Image.saveпри сохранении изображения.
- print_png(filename_or_obj, *args, metadata=None, pil_kwargs=None)[source]
-
Записать изображение в файл PNG.
- Параметры
-
- filename_or_objstr или path-like или file-like
-
Файл для записи.
- metadatadict, необязательно
-
Метаданные в файле PNG в виде пар ключ-значение байтов или строк, допускающих кодировку latin-1. Согласно спецификации PNG, ключи должны быть короче 79 символов.
Спецификация PNG определяет некоторые общие ключевые слова, которые могут быть использованы по мере необходимости:
- Title: Короткий (одна строка) заголовок или подпись изображения.
- Author: Имя создателя изображения.
- Description: Описание изображения (возможно длинное).
- Copyright: Авторские права.
- Creation Time: Время создания исходного изображения (обычно в формате RFC 1123).
- Software: Программное обеспечение, используемое для создания изображения.
- Disclaimer: Юридическое освобождение от ответственности.
- Warning: Предупреждение о характере содержимого.
- Source: Устройство, использованное для создания изображения.
- Comment: Разнообразные комментарии; преобразование из другого формата изображения.
Другие ключевые слова могут быть придуманы для других целей.
Если 'Software' не указан, будет использовано автоматически сгенерированное значение для Matplotlib. Его можно удалить, установив его в None.
Более подробную информацию см. в спецификации PNG.
- pil_kwargsdict, необязательно
-
Ключевые аргументы, передаваемые в
PIL.Image.Image.save.Если ключ 'pnginfo' присутствует, он полностью переопределяет metadata, включая ключевое значение 'Software' по умолчанию.
- print_raw(filename_or_obj, *args)[source]
- print_rgba(filename_or_obj, *args)[source]
- print_tif(filename_or_obj, *, pil_kwargs=None)[source]
- print_tiff(filename_or_obj, *, pil_kwargs=None)[source]
- print_to_buffer()[source]
- restore_region(region, bbox=None, xy=None)[source]
- classmatplotlib.backends.backend_agg.RendererAgg(width, height, dpi)[source]
-
Bases:
matplotlib.backend_bases.RendererBaseОтрисовщик обрабатывает все примитивы рисования, используя экземпляр контекста графики, который управляет цветами/стилями
- buffer_rgba()[source]
- clear()[source]
- draw_mathtext(gc, x, y, s, prop, angle)[source]
-
Отрисовка математического текста с использованием
matplotlib.mathtext.
- draw_path(gc, path, transform, rgbFace=None)[source]
-
Отрисовка экземпляра
Pathс использованием заданного аффинного преобразования.
- draw_tex(gc, x, y, s, prop, angle, *, mtext=None)[source]
- 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, и тогда фактическая область обрезки будет нарисована вместе с вашим текстом.
- get_canvas_width_height()[source]
-
Возвращает ширину и высоту холста в координатах отображения.
- get_content_extents()[source]
-
[Устарело]
Примечания
Устарело начиная с версии 3.4:
- get_text_width_height_descent(s, prop, ismath)[source]
-
Возвращает ширину, высоту и спуск (смещение от нижней границы до базовой линии) в координатах отображения для строки s с
FontPropertiesprop.
- lock=<unlocked _thread.RLock object owner=0 count=0>
- option_image_nocomposite()[source]
-
Возвращает, нужно ли пропускать композицию изображений Matplotlib.
Бэкенды растрового отображения обычно возвращают False (разрешая C-уровневому растровому процессору позаботиться о композиции изображений); бэкенды векторного отображения обычно возвращают
not rcParams["image.composite_image"].
- option_scale_image()[source]
-
Возвращает, поддерживаются ли произвольные аффинные преобразования в
draw_image()(True для большинства бэкендов векторного отображения).
- points_to_pixels(points)[source]
-
Преобразует точки в единицы отображения.
Вам нужно переопределить эту функцию (если ваш бэкенд не имеет dpi, например, postscript или svg). Некоторые системы отображения предполагают некоторое значение для пикселей на дюйм:
points to pixels = points * pixels_per_inch/72 * dpi/72
- Параметры
-
- pointsfloat или array-like
-
значение с плавающей точкой или массив numpy с плавающей точкой
- Возвращает
-
- Преобразованные точки в пиксели
- restore_region(region, bbox=None, xy=None)[source]
-
Восстановление сохранённой области. Если задан bbox (экземпляр BboxBase или его границы), восстанавливается только область, определённая bbox. xy (пара чисел с плавающей точкой) необязательно указывает новое положение (левый нижний угол исходной области, а не левый нижний угол bbox), где будет восстановлена область.
>>> region = renderer.copy_from_bbox() >>> x1, y1, x2, y2 = region.get_extents() >>> renderer.restore_region(region, bbox=(x1+dx, y1, x2, y2), ... xy=(x1-dx, y1))
- start_filter()[source]
-
Начало фильтрации. Просто создаёт новый холст (старый сохраняется).
- stop_filter(post_processing)[source]
-
Сохранение графика на текущем холсте в виде изображения и применение функции post_processing.
- def post_processing(image, dpi):
-
# ny, nx, depth = image.shape # изображение (массив NumPy) имеет каналы RGBA и имеет глубину 4. ... # создание нового изображения (массив NumPy из 4 каналов, размер может быть # другим). Результирующее изображение может иметь смещения от # нижнего левого угла исходного изображения return new_image, offset_x, offset_y
Сохранённый рендерер восстанавливается, и возвращаемое изображение из post_processing отображается (с помощью draw_image) на нём.
- tostring_argb()[source]
- tostring_rgb()[source]
- tostring_rgba_minimized()[source]
-
[Устаревшее]
Примечания
Устарело начиная с версии 3.4:
- matplotlib.backends.backend_agg.get_hinting_flag()[source]
© 2012–2021 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.5.1/api/backend_agg_api.html