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)[source]#
-
图形渲染画布。调用绘图和打印图形方法,创建渲染器等。
注意:GUI 模板会希望将按钮按下、鼠标移动和按键事件连接到调用基类方法 button_press_event、button_release_event、motion_notify_event、key_press_event 和 key_release_event 的函数。有关示例,请参阅交互式后端实现。
- 属性:
- figure
Figure
一个高级的 Figure 实例
- figure
- draw()[source]#
使用渲染器绘制图形。
重要的是,即使不产生任何输出,此方法也应遍历艺术家树,因为这将触发延迟工作(例如计算自动限制和刻度值),用户可能希望在保存到磁盘之前访问这些信息。
- filetypes = {'eps': '封装式 Postscript', 'foo': '我的神奇 Foo 格式', 'jpeg': '联合图像专家组', 'jpg': '联合图像专家组', 'pdf': '便携式文档格式', 'pgf': 'LaTeX 的 PGF 代码', 'png': '便携式网络图形', 'ps': 'Postscript', 'raw': '原始 RGBA 位图', 'rgba': '原始 RGBA 位图', 'svg': '可伸缩矢量图形', 'svgz': '可伸缩矢量图形', 'tif': '标签图像文件格式', 'tiff': '标签图像文件格式', 'webp': 'WebP 图像格式'}#
- get_default_filetype()[source]#
返回由
rcParams["savefig.format"]
(默认值:'png'
)指定的默认保存图形文件格式。返回的字符串不包含句点。此方法在仅支持单一文件类型的后端中被覆盖。
- print_foo(filename, **kwargs)[source]#
输出 foo 格式。
此方法通常通过
Figure.savefig
和FigureCanvasBase.print_figure
调用,它们负责将图形的 facecolor、edgecolor 和 dpi 设置为所需的输出值,并将其恢复为原始值。因此,print_foo
无需处理这些设置。
- class matplotlib.backends.backend_template.FigureManagerTemplate(canvas, num)[source]#
-
pyplot 模式的辅助类,将所有内容整齐地打包。
对于非交互式后端,基类已足够。对于交互式后端,请参阅
FigureManagerBase
类的文档,了解可以/应该被覆盖的方法列表。
- class matplotlib.backends.backend_template.GraphicsContextTemplate[source]#
-
图形上下文提供颜色、线条样式等。请参阅 Cairo 和 Postscript 后端,了解如何将图形上下文属性(端点样式、连接样式、线宽、颜色)映射到特定后端的示例。在 Cairo 中,这是通过封装一个 `cairo.Context` 对象并使用将样式映射到 `gdk` 常量的字典将相应的调用转发给它来完成的。在 Postscript 中,所有工作都由渲染器完成,将线条样式映射到 Postscript 调用。
如果更适合在渲染器级别进行映射(如 Postscript 后端),则无需覆盖任何 GC 方法。如果更适合封装一个实例(如 Cairo 后端)并在此处进行映射,则需要覆盖多个 setter 方法。
基类 GraphicsContext 将颜色存储为单位区间上的 RGB 元组,例如 (0.5, 0.0, 1.0)。您可能需要将其映射到适合您后端的颜色。
- class matplotlib.backends.backend_template.RendererTemplate(dpi)[source]#
基类:
RendererBase
渲染器处理绘图/渲染操作。
这是一个最小的、不执行任何操作的类,可用于在编写新后端时开始。请参阅
backend_bases.RendererBase
以获取方法的文档。- draw_image(gc, x, y, im)[source]#
绘制 RGBA 图像。
- 参数:
- gc
GraphicsContextBase
带有裁剪信息的图形上下文。
- x浮点数
从画布左侧开始的物理单位(即点或像素)距离。
- y浮点数
从画布底部开始的物理单位(即点或像素)距离。
- im(N, M, 4)
numpy.uint8
的数组 RGBA 像素数组。
- transform
Affine2DBase
当且仅当具体后端编写为使得
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)[source]#
绘制文本实例。
- 参数:
- gc
GraphicsContextBase
图形上下文。
- x浮点数
文本在显示坐标中的 x 位置。
- y浮点数
文本基线在显示坐标中的 y 位置。
- sstr
文本字符串。
- prop
FontProperties
字体属性。
- angle浮点数
逆时针旋转角度(度)。
- ismath布尔值 或 "TeX"
如果为 True,则使用 mathtext 解析器。
- mtext
Text
要渲染的原始文本对象。
- gc
备注
后端实现者注意事项
RendererBase.draw_text
也支持将“TeX”传递给 *ismath* 参数以使用 TeX 渲染,但这对于实际渲染后端并非必需,事实上许多内置后端都不支持此功能。相反,TeX 渲染由draw_tex
提供。
- get_text_width_height_descent(s, prop, ismath)[source]#
获取字符串 *s* 在显示坐标中的宽度、高度和下降(从底部到基线的偏移量),使用
FontProperties
*prop*。字符串 s 开头和结尾的空白字符包含在报告的宽度中。
- new_gc()[source]#
返回
GraphicsContextBase
的一个实例。