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")
- class matplotlib.backends.backend_template.FigureCanvasTemplate(figure=None)[源代码][源代码]#
-
画布是图形渲染的目标。调用绘图和打印图形方法,创建渲染器等。
注意:GUI 模板将需要连接按钮按下、鼠标移动和按键的事件到调用基类方法 button_press_event、button_release_event、motion_notify_event、key_press_event 和 key_release_event 的函数。请参阅交互式后端的实现示例。
- 属性:
- figure图
一个高级的 Figure 实例
- 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 文件格式。返回的字符串不包含句号。此方法在仅支持单一文件类型的后端中被重写。
- print_foo(filename, **kwargs)[源代码][源代码]#
写出格式 foo。
此方法通常通过
Figure.savefig和FigureCanvasBase.print_figure调用,它们负责将图形的前景色、边框颜色和dpi设置为所需的输出值,并将它们恢复为原始值。因此,print_foo不需要处理这些设置。
- class matplotlib.backends.backend_template.FigureManagerTemplate(canvas, num)[源代码][源代码]#
-
pyplot 模式的辅助类,将所有内容打包成一个整洁的包。
对于非交互式后端,基类已足够。对于交互式后端,请参阅
FigureManagerBase类的文档,了解可以/应该重写的方法列表。
- class matplotlib.backends.backend_template.GraphicsContextTemplate[源代码][源代码]#
-
图形上下文提供了颜色、线条样式等。请参阅 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图像。
- 参数:
- gc
GraphicsContextBase 带有剪切信息的图形上下文。
- x标量
画布左侧的物理单位(即点或像素)距离。
- y标量
画布底部边缘的物理单位(即点或像素)距离。
- im : (N, M, 4) 的
numpy.uint8数组(N, M, 4) 数组 一个包含RGBA像素的数组。
- 变换 :
Affine2DBaseAffine2DBase 仅当具体后端被编写为
option_scale_image返回True时,一个仿射变换(即,一个Affine2DBase)*可能* 被传递给draw_image。变换的平移向量以物理单位(即,点或像素)给出。请注意,该变换不会覆盖 x 和 y,并且必须在将结果通过 x 和 y 进行平移之前应用(这可以通过将 x 和 y 添加到由 transform 定义的平移向量来实现)。
- gc
- draw_text(gc, x, y, s, prop, angle, ismath=False, mtext=None)[源代码][源代码]#
绘制一个文本实例。
- 参数:
- gc
GraphicsContextBase 图形上下文。
- x浮动
文本在显示坐标中的x位置。
- y浮动
文本基线在显示坐标中的y位置。
- sstr
文本字符串。
- prop
FontProperties 字体属性。
- 角度浮动
逆时针方向的旋转角度(以度为单位)。
- ismath布尔值或“TeX”
如果为真,使用 mathtext 解析器。
- mtext文本
要渲染的原始文本对象。
- gc
注释
后端实现者须知:
RendererBase.draw_text还支持将 "TeX" 传递给 ismath 参数以使用 TeX 渲染,但这对于实际的渲染后端不是必需的,实际上许多内置后端并不支持这一点。相反,TeX 渲染由draw_tex提供。
- get_text_width_height_descent(s, prop, ismath)[源代码][源代码]#
获取字符串 s 在
FontPropertiesprop 下的宽度、高度和下降量(从底部到基线的偏移量),以显示坐标表示。在 s 的开头和结尾处的空白字符包含在报告的宽度中。
- new_gc()[源代码][源代码]#
返回一个
GraphicsContextBase的实例。