matplotlib.backends.backend_template#

一个完全功能化、无所作为的后端,旨在作为后端编写者的模板。它是完全功能化的,因为你可以选择它作为后端,例如使用

import matplotlib
matplotlib.use("template")

并且您的程序将(应该!)在没有错误的情况下运行,尽管没有产生输出。这为后端编写者提供了一个起点;您可以选择性地实现绘图方法(draw_pathdraw_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[源代码]#

FigureCanvasTemplate 的别名

class matplotlib.backends.backend_template.FigureCanvasTemplate(figure=None)[源代码][源代码]#

基类:FigureCanvasBase

画布是图形渲染的目标。调用绘图和打印图形方法,创建渲染器等。

注意:GUI 模板将需要连接按钮按下、鼠标移动和按键的事件到调用基类方法 button_press_event、button_release_event、motion_notify_event、key_press_event 和 key_release_event 的函数。请参阅交互式后端的实现示例。

属性:
figure

一个高级的 Figure 实例

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

使用渲染器绘制图形。

即使没有输出产生,这种方法实际上遍历艺术家树也很重要,因为这将触发用户可能在保存到磁盘之前希望访问的延迟工作(如计算自动限制和刻度值)。

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', 'webp': 'WebP Image Format'}#
get_default_filetype()[源代码][源代码]#

返回在 rcParams["savefig.format"] (default: 'png') 中指定的默认 savefig 文件格式。

返回的字符串不包含句号。此方法在仅支持单一文件类型的后端中被重写。

manager_class[源代码]#

FigureManagerTemplate 的别名

print_foo(filename, **kwargs)[源代码][源代码]#

写出格式 foo。

此方法通常通过 Figure.savefigFigureCanvasBase.print_figure 调用,它们负责将图形的前景色、边框颜色和dpi设置为所需的输出值,并将它们恢复为原始值。因此,print_foo 不需要处理这些设置。

matplotlib.backends.backend_template.FigureManager[源代码]#

FigureManagerTemplate 的别名

class matplotlib.backends.backend_template.FigureManagerTemplate(canvas, num)[源代码][源代码]#

基类:FigureManagerBase

pyplot 模式的辅助类,将所有内容打包成一个整洁的包。

对于非交互式后端,基类已足够。对于交互式后端,请参阅 FigureManagerBase 类的文档,了解可以/应该重写的方法列表。

class matplotlib.backends.backend_template.GraphicsContextTemplate[源代码][源代码]#

基类:GraphicsContextBase

图形上下文提供了颜色、线条样式等。请参阅 cairo 和 postscript 后端,了解将图形上下文属性(如帽样式、连接样式、线宽、颜色)映射到特定后端的示例。在 cairo 中,这是通过包装一个 cairo.Context 对象并使用字典将样式映射到 gdk 常量来转发适当的调用完成的。在 Postscript 中,所有工作都由渲染器完成,将线条样式映射到 postscript 调用。

如果在渲染器级别进行映射更合适(如在postscript后端中),则不需要覆盖任何GC方法。如果在本处包装实例(如在cairo后端中)并进行映射更合适,则需要覆盖多个设置方法。

基础的 GraphicsContext 将颜色存储为单位区间上的 RGB 元组,例如 (0.5, 0.0, 1.0)。您可能需要将此映射到适合您后端的颜色。

class matplotlib.backends.backend_template.RendererTemplate(dpi)[源代码][源代码]#

基类:RendererBase

渲染器处理绘制/渲染操作。

这是一个最小的空类,可以在编写新后端时用来开始。有关方法的文档,请参阅 backend_bases.RendererBase

draw_image(gc, x, y, im)[源代码][源代码]#

绘制一个RGBA图像。

参数:
gcGraphicsContextBase

带有剪切信息的图形上下文。

x标量

画布左侧的物理单位(即点或像素)距离。

y标量

画布底部边缘的物理单位(即点或像素)距离。

im : (N, M, 4) 的 numpy.uint8 数组(N, M, 4) 数组

一个包含RGBA像素的数组。

变换 : Affine2DBaseAffine2DBase

仅当具体后端被编写为 option_scale_image 返回 True 时,一个仿射变换(即,一个 Affine2DBase)*可能* 被传递给 draw_image。变换的平移向量以物理单位(即,点或像素)给出。请注意,该变换不会覆盖 xy,并且必须在将结果通过 xy 进行平移之前应用(这可以通过将 xy 添加到由 transform 定义的平移向量来实现)。

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

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

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 提供。

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

返回 y 值是否从上到下增加。

请注意,这仅影响文本的绘制。

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

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

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

获取字符串 sFontProperties prop 下的宽度、高度和下降量(从底部到基线的偏移量),以显示坐标表示。

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

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

返回一个 GraphicsContextBase 的实例。

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

将点转换为显示单位。

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

points to pixels = points * pixels_per_inch/72 * dpi/72
参数:
浮点数或类似数组
返回:
点转换为像素