matplotlib.backends.backend_agg#

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

已实现的功能:

  • capstyles 和 join styles

  • dashes

  • linewidth

  • 线条、矩形、椭圆

  • 裁剪到矩形

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

  • alpha 混合

  • DPI 缩放正确 - 所有内容都正确缩放(破折号、线宽等)

  • 绘制多边形

  • freetype2 w/ ft2font

仍待完成:

  • 整合屏幕 dpi 与 ppi 及文本

matplotlib.backends.backend_agg.FigureCanvas[源代码]#

FigureCanvasAgg 的别名

class matplotlib.backends.backend_agg.FigureCanvasAgg(figure=None)[源代码][源代码]#

基类:FigureCanvasBase

buffer_rgba()[源代码][源代码]#

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

draw 必须在此函数工作之前至少调用一次,并且为了更新图形的任何后续更改,需要更新渲染器。

copy_from_bbox(bbox)[源代码][源代码]#
draw()[源代码][源代码]#

渲染 Figure

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

get_renderer()[源代码][源代码]#
print_jpeg(filename_or_obj, *, metadata=None, pil_kwargs=None)[源代码]#

将图像写入JPEG文件。

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

要写入的文件。

pil_kwargsdict, 可选

在保存图形时传递给 PIL.Image.Image.save 的额外关键字参数。

print_jpg(filename_or_obj, *, metadata=None, pil_kwargs=None)[源代码][源代码]#

将图像写入JPEG文件。

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

要写入的文件。

pil_kwargsdict, 可选

在保存图形时传递给 PIL.Image.Image.save 的额外关键字参数。

print_png(filename_or_obj, *, metadata=None, pil_kwargs=None)[源代码][源代码]#

将图形写入 PNG 文件。

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

要写入的文件。

元数据dict, 可选

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

PNG 规范 定义了一些可能适当使用的通用关键词:

  • 标题: 图片的简短(一行)标题或说明。

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

  • 描述: 图片描述(可能较长)。

  • 版权: 版权声明。

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

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

  • 免责声明:法律免责声明。

  • 警告:内容性质的警告。

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

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

其他关键词可能为其他目的而发明。

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

更多详情请参见 PNG 规范

pil_kwargsdict, 可选

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

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

print_raw(filename_or_obj, *, metadata=None)[源代码][源代码]#
print_rgba(filename_or_obj, *, metadata=None)[源代码]#
print_tif(filename_or_obj, *, metadata=None, pil_kwargs=None)[源代码][源代码]#

将图像写入 TIFF 文件。

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

要写入的文件。

pil_kwargsdict, 可选

在保存图形时传递给 PIL.Image.Image.save 的额外关键字参数。

print_tiff(filename_or_obj, *, metadata=None, pil_kwargs=None)[源代码]#

将图像写入 TIFF 文件。

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

要写入的文件。

pil_kwargsdict, 可选

在保存图形时传递给 PIL.Image.Image.save 的额外关键字参数。

print_to_buffer()[源代码][源代码]#
print_webp(filename_or_obj, *, metadata=None, pil_kwargs=None)[源代码][源代码]#

将图像写入 WebP 文件。

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

要写入的文件。

pil_kwargsdict, 可选

在保存图形时传递给 PIL.Image.Image.save 的额外关键字参数。

restore_region(region, bbox=None, xy=None)[源代码][源代码]#
tostring_argb()[源代码][源代码]#

获取图像为 ARGB 字节

draw 必须在此函数工作之前至少调用一次,并且为了更新图形的任何后续更改,需要更新渲染器。

tostring_rgb()[源代码][源代码]#

[已弃用] 获取图像为RGB 字节

draw 必须在此函数工作之前至少调用一次,并且为了更新图形的任何后续更改,需要更新渲染器。

注释

自 3.8 版本弃用: 请使用 buffer_rgba 代替。

class matplotlib.backends.backend_agg.RendererAgg(width, height, dpi)[源代码][源代码]#

基类:RendererBase

渲染器使用一个图形上下文实例处理所有绘图原语,该实例控制颜色/样式

buffer_rgba()[源代码][源代码]#
clear()[源代码][源代码]#
draw_mathtext(gc, x, y, s, prop, angle)[源代码][源代码]#

使用 matplotlib.mathtext 绘制数学文本。

draw_path(gc, path, transform, rgbFace=None)[源代码][源代码]#

使用给定的仿射变换绘制一个 Path 实例。

draw_tex(gc, x, y, s, prop, angle, *, mtext=None)[源代码][源代码]#

绘制一个 TeX 实例。

参数:
gcGraphicsContextBase

图形上下文。

x浮动

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

y浮动

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

sstr

TeX 文本字符串。

propFontProperties

字体属性。

角度浮动

逆时针方向的旋转角度(以度为单位)。

mtext文本

要渲染的原始文本对象。

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

绘制一个文本实例。

参数:
gcGraphicsContextBase

图形上下文。

x浮动

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

y浮动

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

sstr

文本字符串。

propFontProperties

字体属性。

角度浮动

逆时针方向的旋转角度(以度为单位)。

ismath布尔值或“TeX”

如果为真,使用 mathtext 解析器。

mtext文本

要渲染的原始文本对象。

注释

后端实现者须知:

RendererBase.draw_text 也支持将 "TeX" 传递给 ismath 参数以使用 TeX 渲染,但这对于实际的渲染后端不是必需的,实际上许多内置后端并不支持这一点。相反,TeX 渲染由 draw_tex 提供。

get_canvas_width_height()[源代码][源代码]#

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

get_text_width_height_descent(s, prop, ismath)[源代码][源代码]#

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

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

option_image_nocomposite()[源代码][源代码]#

返回是否应跳过 Matplotlib 的图像合成。

光栅后端通常应返回 False(让 C 级光栅化器处理图像合成);矢量后端通常应返回 not rcParams["image.composite_image"]

option_scale_image()[源代码][源代码]#

返回 draw_image 中是否支持任意仿射变换(大多数矢量后端为 True)。

points_to_pixels(points)[源代码][源代码]#

将点转换为显示单位。

你需要重写这个函数(除非你的后端没有dpi,例如,postscript或svg)。一些图像系统假设每英寸的像素值为:

points to pixels = points * pixels_per_inch/72 * dpi/72
参数:
浮点数或类似数组
返回:
点转换为像素
restore_region(region, bbox=None, xy=None)[源代码][源代码]#

恢复保存的区域。如果给出了 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()[源代码][源代码]#

开始过滤。它只是创建了一个新的画布(旧的画布被保存)。

stop_filter(post_processing)[源代码][源代码]#

将当前画布保存为图像并应用后期处理。

The 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

保存的渲染器被恢复,并且来自后处理的返回图像(使用 draw_image)被绘制在其上。

tostring_argb()[源代码][源代码]#
tostring_rgb()[源代码][源代码]#

[已弃用]

注释

自 3.8 版本弃用: 使用 buffer_rgba 代替。

matplotlib.backends.backend_agg.get_hinting_flag()[源代码][源代码]#