matplotlib.backends.backend_agg#

一个 Anti-Grain Geometry (AGG) 后端。

已实现的特性

  • 笔帽样式和连接样式

  • 虚线样式

  • 线宽

  • 线条、矩形、椭圆

  • 裁剪到矩形

  • 输出为RGBA和Pillow支持的图像格式

  • Alpha混合

  • DPI正确缩放 - 所有内容(虚线样式、线宽等)都正确缩放

  • 绘制多边形

  • freetype2 与 ft2font

待办事项

  • 整合屏幕DPI与PPI和文本

matplotlib.backends.backend_agg.FigureCanvas[source]#

FigureCanvasAgg 的别名

matplotlib.backends.backend_agg.FigureCanvasAgg(figure=None)[source]#

基类: FigureCanvasBase

buffer_rgba()[source]#

将图像作为 memoryview 获取到渲染器的缓冲区。

draw 必须至少调用一次,此函数才能正常工作并更新渲染器以适应图形的任何后续更改。

copy_from_bbox(bbox)[source]#
draw()[source]#

渲染 Figure

此方法必须遍历 Artist 树,即使没有产生输出,因为它会触发用户在将输出保存到磁盘之前可能希望访问的延迟工作。例如,计算限制、自动限制和刻度值。

get_renderer()[source]#
print_jpeg(filename_or_obj, *, metadata=None, pil_kwargs=None)[source]#

将图形写入JPEG文件。

参数:
filename_or_objstr 或 path-like 或 file-like

要写入的文件。

pil_kwargs字典,可选

保存图形时传递给 PIL.Image.Image.save 的其他关键字参数。

print_jpg(filename_or_obj, *, metadata=None, pil_kwargs=None)[source]#

将图形写入JPEG文件。

参数:
filename_or_objstr 或 path-like 或 file-like

要写入的文件。

pil_kwargs字典,可选

保存图形时传递给 PIL.Image.Image.save 的其他关键字参数。

print_png(filename_or_obj, *, metadata=None, pil_kwargs=None)[source]#

将图形写入PNG文件。

参数:
filename_or_objstr 或 path-like 或 file-like

要写入的文件。

metadata字典,可选

PNG文件中的元数据为字节或latin-1编码字符串的键值对。根据PNG规范,键的长度必须小于79个字符。

PNG规范 定义了一些可能适用的常见关键字

  • Title: 图像的短(一行)标题或说明。

  • Author: 图像创建者的姓名。

  • Description: 图像描述(可能很长)。

  • Copyright: 版权声明。

  • Creation Time: 原始图像创建时间(通常为RFC 1123格式)。

  • Software: 用于创建图像的软件。

  • Disclaimer: 法律免责声明。

  • Warning: 内容性质警告。

  • Source: 用于创建图像的设备。

  • Comment: 杂项注释;从其他图像格式转换而来。

可以为其他目的创建其他关键字。

如果未提供 'Software',将使用Matplotlib自动生成的值。通过将其设置为 None 可以删除此值。

更多详情请参见 PNG规范

pil_kwargs字典,可选

传递给 PIL.Image.Image.save 的关键字参数。

如果存在 'pnginfo' 键,它将完全覆盖 metadata,包括默认的 'Software' 键。

print_raw(filename_or_obj, *, metadata=None)[source]#
print_rgba(filename_or_obj, *, metadata=None)[source]#
print_tif(filename_or_obj, *, metadata=None, pil_kwargs=None)[source]#

将图形写入TIFF文件。

参数:
filename_or_objstr 或 path-like 或 file-like

要写入的文件。

pil_kwargs字典,可选

保存图形时传递给 PIL.Image.Image.save 的其他关键字参数。

print_tiff(filename_or_obj, *, metadata=None, pil_kwargs=None)[source]#

将图形写入TIFF文件。

参数:
filename_or_objstr 或 path-like 或 file-like

要写入的文件。

pil_kwargs字典,可选

保存图形时传递给 PIL.Image.Image.save 的其他关键字参数。

print_to_buffer()[source]#
print_webp(filename_or_obj, *, metadata=None, pil_kwargs=None)[source]#

将图形写入WebP文件。

参数:
filename_or_objstr 或 path-like 或 file-like

要写入的文件。

pil_kwargs字典,可选

保存图形时传递给 PIL.Image.Image.save 的其他关键字参数。

restore_region(region, bbox=None, xy=None)[source]#
tostring_argb()[source]#

将图像作为ARGB bytes 获取。

draw 必须至少调用一次,此函数才能正常工作并更新渲染器以适应图形的任何后续更改。

matplotlib.backends.backend_agg.RendererAgg(width, height, dpi)[source]#

基类: 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]#

绘制一个 TeX 实例。

参数:
gcGraphicsContextBase

图形上下文。

x浮点数

文本在显示坐标中的 x 位置。

y浮点数

文本基线在显示坐标中的 y 位置。

sstr

TeX 文本字符串。

propFontProperties

字体属性。

angle浮点数

逆时针旋转角度(度)。

mtextText

要渲染的原始文本对象。

draw_text(gc, x, y, s, prop, angle, ismath=False, mtext=None)[source]#

绘制文本实例。

参数:
gcGraphicsContextBase

图形上下文。

x浮点数

文本在显示坐标中的 x 位置。

y浮点数

文本基线在显示坐标中的 y 位置。

sstr

文本字符串。

propFontProperties

字体属性。

angle浮点数

逆时针旋转角度(度)。

ismath布尔值 或 "TeX"

如果为 True,则使用 mathtext 解析器。

mtextText

要渲染的原始文本对象。

备注

后端实现者注意事项

RendererBase.draw_text 还支持将“TeX”传递给 ismath 参数以使用TeX渲染,但这对于实际的渲染后端不是必需的,并且许多内置后端确实不支持此功能。相反,TeX渲染由 draw_tex 提供。

get_canvas_width_height()[source]#

返回画布在显示坐标中的宽度和高度。

get_text_width_height_descent(s, prop, ismath)[source]#

获取字符串 s 的宽度、高度和下降(从底部到基线的偏移量),在显示坐标中,使用 FontProperties prop

字符串 s 开头和结尾的空白字符包含在报告的宽度中。

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
参数:
points浮点数或类数组
返回:
转换为像素的点
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
  # image (numpy array) has RGBA channels and has a depth of 4.
  ...
  # create a new_image (numpy array of 4 channels, size can be
  # different). The resulting image may have offsets from
  # lower-left corner of the original image
  return new_image, offset_x, offset_y

已保存的渲染器将恢复,并且post_processing返回的图像(使用draw_image)会绘制在其上。

tostring_argb()[source]#
matplotlib.backends.backend_agg.get_hinting_flag()[source]#