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[source]#

别名 FigureCanvasTemplate

class matplotlib.backends.backend_template.FigureCanvasTemplate(figure=None)[source]#

基类:FigureCanvasBase

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

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

属性:
figureFigure

一个高级的 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')指定的默认保存图形文件格式。

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

manager_class[source]#

别名 FigureManagerTemplate

print_foo(filename, **kwargs)[source]#

输出 foo 格式。

此方法通常通过 Figure.savefigFigureCanvasBase.print_figure 调用,它们负责将图形的 facecolor、edgecolor 和 dpi 设置为所需的输出值,并将其恢复为原始值。因此,print_foo 无需处理这些设置。

matplotlib.backends.backend_template.FigureManager[source]#

别名 FigureManagerTemplate

class matplotlib.backends.backend_template.FigureManagerTemplate(canvas, num)[source]#

基类:FigureManagerBase

pyplot 模式的辅助类,将所有内容整齐地打包。

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

class matplotlib.backends.backend_template.GraphicsContextTemplate[source]#

基类:GraphicsContextBase

图形上下文提供颜色、线条样式等。请参阅 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 图像。

参数:
gcGraphicsContextBase

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

x浮点数

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

y浮点数

从画布底部开始的物理单位(即点或像素)距离。

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

RGBA 像素数组。

transformAffine2DBase

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

draw_path(gc, path, transform, rgbFace=None)[source]#

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

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

flipy()[source]#

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

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

get_canvas_width_height()[source]#

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

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

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

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

new_gc()[source]#

返回 GraphicsContextBase 的一个实例。

points_to_pixels(points)[source]#

将点转换为显示单位。

你需要重写此函数(除非你的后端没有DPI,例如postscript或svg)。一些成像系统假定每英寸像素的某个值

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