matplotlib.backends.backend_pdf#

一个 PDF Matplotlib 后端。

作者: Jouni K Seppänen <jks@iki.fi> 及其他。

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

FigureCanvasPdf 的别名

class matplotlib.backends.backend_pdf.FigureCanvasPdf(figure=None)[源代码][源代码]#

基类:FigureCanvasBase

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

渲染 Figure

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

filetypes = {'pdf': 'Portable Document Format'}#
fixed_dpi = 72#
get_default_filetype()[源代码][源代码]#

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

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

print_pdf(filename, *, bbox_inches_restore=None, metadata=None)[源代码][源代码]#
class matplotlib.backends.backend_pdf.GraphicsContextPdf(file)[源代码][源代码]#

基类:GraphicsContextBase

alpha_cmd(alpha, forced, effective_alphas)[源代码][源代码]#
capstyle_cmd(style)[源代码][源代码]#
capstyles = {'butt': 0, 'projecting': 2, 'round': 1}#
clip_cmd(cliprect, clippath)[源代码][源代码]#

设置剪切矩形。调用 pop()push()

commands = ((('_cliprect', '_clippath'), <function GraphicsContextPdf.clip_cmd>), (('_alpha', '_forced_alpha', '_effective_alphas'), <function GraphicsContextPdf.alpha_cmd>), (('_capstyle',), <function GraphicsContextPdf.capstyle_cmd>), (('_fillcolor',), <function GraphicsContextPdf.fillcolor_cmd>), (('_joinstyle',), <function GraphicsContextPdf.joinstyle_cmd>), (('_linewidth',), <function GraphicsContextPdf.linewidth_cmd>), (('_dashes',), <function GraphicsContextPdf.dash_cmd>), (('_rgb',), <function GraphicsContextPdf.rgb_cmd>), (('_hatch', '_hatch_color'), <function GraphicsContextPdf.hatch_cmd>))#
copy_properties(other)[源代码][源代码]#

将其他对象的属性复制到自身。

dash_cmd(dashes)[源代码][源代码]#
delta(other)[源代码][源代码]#

将其他对象的属性复制到自身,并返回将 self 转换为 other 所需的 PDF 命令。

fill(*args)[源代码][源代码]#

谓词:路径需要填充吗?

可选参数可用于指定替代的 _fillcolor,如 RendererPdf.draw_markers 所需。

fillcolor_cmd(rgb)[源代码][源代码]#
finalize()[源代码][源代码]#

确保每个推送的图形状态都被弹出。

hatch_cmd(hatch, hatch_color)[源代码][源代码]#
joinstyle_cmd(style)[源代码][源代码]#
joinstyles = {'bevel': 2, 'miter': 0, 'round': 1}#
linewidth_cmd(width)[源代码][源代码]#
paint()[源代码][源代码]#

返回适当的pdf操作符以使路径被描边、填充或两者兼有。

pop()[源代码][源代码]#
push()[源代码][源代码]#
rgb_cmd(rgb)[源代码][源代码]#
stroke()[源代码][源代码]#

谓词:路径是否需要描边(绘制其轮廓)?这测试了禁用路径描边的各种条件,在这种情况下,路径可能会被填充。

class matplotlib.backends.backend_pdf.Name(name)[源代码][源代码]#

基类:object

PDF 名称对象。

name#

!! 由 numpydoc 处理 !!

pdfRepr()[源代码][源代码]#
class matplotlib.backends.backend_pdf.Op(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[源代码][源代码]#

基类:Enum

PDF 操作符(非详尽列表)。

begin_text = b'BT'[源代码]#
clip = b'W'[源代码]#
close_fill_stroke = b'b'[源代码]#
close_stroke = b's'[源代码]#
closepath = b'h'[源代码]#
concat_matrix = b'cm'[源代码]#
curveto = b'c'[源代码]#
end_text = b'ET'[源代码]#
endpath = b'n'[源代码]#
fill = b'f'[源代码]#
fill_stroke = b'B'[源代码]#
grestore = b'Q'[源代码]#
gsave = b'q'[源代码]#
lineto = b'l'[源代码]#
moveto = b'm'[源代码]#
classmethod paint_path(fill, stroke)[源代码][源代码]#

返回用于绘制路径的PDF操作符。

参数:
填充布尔

用填充颜色填充路径。

笔画布尔

用线条颜色描绘路径的轮廓。

pdfRepr()[源代码][源代码]#
rectangle = b're'[源代码]#
selectfont = b'Tf'[源代码]#
setcolor_nonstroke = b'scn'[源代码]#
setcolor_stroke = b'SCN'[源代码]#
setcolorspace_nonstroke = b'cs'[源代码]#
setcolorspace_stroke = b'CS'[源代码]#
setdash = b'd'[源代码]#
setgray_nonstroke = b'g'[源代码]#
setgray_stroke = b'G'[源代码]#
setgstate = b'gs'[源代码]#
setlinecap = b'J'[源代码]#
setlinejoin = b'j'[源代码]#
setlinewidth = b'w'[源代码]#
setrgb_nonstroke = b'rg'[源代码]#
setrgb_stroke = b'RG'[源代码]#
shading = b'sh'[源代码]#
show = b'Tj'[源代码]#
showkern = b'TJ'[源代码]#
stroke = b'S'[源代码]#
textmatrix = b'Tm'[源代码]#
textpos = b'Td'[源代码]#
use_xobject = b'Do'[源代码]#
class matplotlib.backends.backend_pdf.PdfFile(filename, metadata=None)[源代码][源代码]#

基类:object

PDF 文件对象。

参数:
文件名str 或 path-like 或 file-like

输出目标;如果是字符串,将打开一个文件进行写入。

元数据从字符串到字符串和日期的字典

信息字典对象(参见PDF参考部分10.2.1 '文档信息字典'),例如:{'Creator': 'My software', 'Author': 'Me', 'Title': 'Awesome'}

标准键包括 'Title'、'Author'、'Subject'、'Keywords'、'Creator'、'Producer'、'CreationDate'、'ModDate' 和 'Trapped'。'Creator'、'Producer' 和 'CreationDate' 的值已预定义。可以通过将它们设置为 None 来移除。

addGouraudTriangles(points, colors)[源代码][源代码]#

添加一个 Gouraud 三角形着色。

参数:
np.ndarray

三角形顶点,形状 (n, 3, 2) 其中 n = 三角形数量,3 = 顶点,2 = x, y。

颜色np.ndarray

顶点颜色,形状为 (n, 3, 1) 或 (n, 3, 4),与点相同,但最后一个维度为 (灰度,) 或 (r, g, b, alpha)。

返回:
名称, 参考
alphaState(alpha)[源代码][源代码]#

返回一个设置给定透明度值的ExtGState的名称。

beginStream(id, len, extra=None, png=None)[源代码][源代码]#
close()[源代码][源代码]#

刷新所有缓冲区并释放所有资源。

createType1Descriptor(t1font, fontfile)[源代码][源代码]#
dviFontName(dvifont)[源代码][源代码]#

给定一个 dvi 字体对象,返回一个适合 Op.selectfont 的名称。如果尚未注册,这将在 self.dviFontInfo 中注册字体信息。

embedTTF(filename, characters)[源代码][源代码]#

将指定文件中的TTF字体嵌入到文档中。

endStream()[源代码][源代码]#
finalize()[源代码][源代码]#

写出各种延迟对象和PDF的结尾部分。

fontName(fontprop)[源代码][源代码]#

根据 fontprop 选择一个字体,并返回一个适合 Op.selectfont 使用的名称。如果 fontprop 是一个字符串,它将被解释为字体的文件名。

hatchPattern(hatch_style)[源代码][源代码]#
imageObject(image)[源代码][源代码]#

返回表示给定图像的图像XObject的名称。

markerObject(path, trans, fill, stroke, lw, joinstyle, capstyle)[源代码][源代码]#

返回表示给定路径的标记 XObject 的名称。

newPage(width, height)[源代码][源代码]#
newTextnote(text, positionRect=[-100, -100, 0, 0])[源代码][源代码]#
output(*data)[源代码][源代码]#
outputStream(ref, data, *, extra=None)[源代码][源代码]#
pathCollectionObject(gc, path, trans, padding, filled, stroked)[源代码][源代码]#
static pathOperations(path, transform, clip=None, simplify=None, sketch=None)[源代码][源代码]#
recordXref(id)[源代码][源代码]#
reserveObject(name='')[源代码][源代码]#

为间接对象保留一个ID。

该名称用于调试,以防我们忘记使用 writeObject 打印对象。

write(data)[源代码][源代码]#
writeExtGSTates()[源代码][源代码]#
writeFonts()[源代码][源代码]#
writeGouraudTriangles()[源代码][源代码]#
writeHatches()[源代码][源代码]#
writeImages()[源代码][源代码]#
writeInfoDict()[源代码][源代码]#

写出信息字典,检查其格式是否正确

writeMarkers()[源代码][源代码]#
writeObject(object, contents)[源代码][源代码]#
writePath(path, transform, clip=False, sketch=None)[源代码][源代码]#
writePathCollectionTemplates()[源代码][源代码]#
writeTrailer()[源代码][源代码]#

写出 PDF 尾部。

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

写出交叉引用表。

class matplotlib.backends.backend_pdf.PdfPages(filename, keep_empty=<object object>, metadata=None)[源代码][源代码]#

基类:object

一个多页的PDF文件。

注释

实际上,PdfPagesPdfFile 的一个薄包装,以避免在使用 savefig 时忘记格式参数而引起的混淆。

示例

>>> import matplotlib.pyplot as plt
>>> # Initialize:
>>> with PdfPages('foo.pdf') as pdf:
...     # As many times as you like, create a figure fig and save it:
...     fig = plt.figure()
...     pdf.savefig(fig)
...     # When no figure is specified the current figure is saved
...     pdf.savefig()

创建一个新的 PdfPages 对象。

参数:
文件名str 或 path-like 或 file-like

使用 PdfPages.savefig 绘制的图将写入此位置的文件中。当第一次保存图形时,文件将被打开(覆盖同名的旧文件)。

keep_emptybool, 可选

如果设置为 False,则在关闭时将自动删除空的 PDF 文件。

元数据字典,可选

信息字典对象(参见PDF参考部分10.2.1 '文档信息字典'),例如:{'Creator': 'My software', 'Author': 'Me', 'Title': 'Awesome'}

标准键包括 'Title'、'Author'、'Subject'、'Keywords'、'Creator'、'Producer'、'CreationDate'、'ModDate' 和 'Trapped'。'Creator'、'Producer' 和 'CreationDate' 的值已预定义。可以通过将它们设置为 None 来移除。

attach_note(text, positionRect=[-100, -100, 0, 0])[源代码][源代码]#

在要保存的页面中添加一个新的文本注释。可选的 positionRect 指定了新注释在页面上的位置。默认情况下,它位于页面之外,以确保它在打印输出中不可见。

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

完成此对象,使其底层文件成为一个完整的PDF文件。

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

返回多页pdf文件中的当前页数。

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

返回一个可修改的信息字典对象(参见PDF参考部分10.2.1 '文档信息字典')。

property keep_empty[源代码]#

!! 由 numpydoc 处理 !!

savefig(figure=None, **kwargs)[源代码][源代码]#

Figure 保存到此文件中作为新页面。

任何其他的关键字参数都会传递给 savefig

参数:
: Figure 或 int, 默认: 当前活动图图或整数,默认值:当前活动图

保存到文件中的图形或图形的索引。

class matplotlib.backends.backend_pdf.Reference(id)[源代码][源代码]#

基类:object

PDF 参考对象。

使用 PdfFile.reserveObject() 创建引用。

pdfRepr()[源代码][源代码]#
write(contents, file)[源代码][源代码]#
class matplotlib.backends.backend_pdf.RendererPdf(file, image_dpi, height, width)[源代码][源代码]#

基类:RendererPDFPSBase

check_gc(gc, fillcolor=None)[源代码][源代码]#
draw_gouraud_triangles(gc, points, colors, trans)[源代码][源代码]#

绘制一系列 Gouraud 三角形。

参数:
gcGraphicsContextBase

图形上下文。

三角形数组(N, 3, 2) 数组类

三角形的 N 个 (x, y) 点数组。

colors_array(N, 3, 4) 数组类

每个三角形点的 N 个 RGBA 颜色数组。

变换 : Transform转换

应用于点的仿射变换。

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

绘制一个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_markers(gc, marker_path, marker_trans, path, trans, rgbFace=None)[源代码][源代码]#

path 的每个顶点(不包括控制点)绘制一个标记。

基础(回退)实现会多次调用 draw_path。后端可能希望重写此方法,以便只绘制一次标记并多次重用它。

参数:
gcGraphicsContextBase

图形上下文。

marker_path路径

标记的路径。

marker_trans转换

应用于标记的仿射变换。

路径 : Path路径

绘制标记的位置。

trans转换

应用于路径的仿射变换。

rgbFace : color, 可选颜色,可选
draw_mathtext(gc, x, y, s, prop, angle)[源代码][源代码]#
draw_path(gc, path, transform, rgbFace=None)[源代码][源代码]#

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

draw_path_collection(gc, master_transform, paths, all_transforms, offsets, offset_trans, facecolors, edgecolors, linewidths, linestyles, antialiaseds, urls, offset_position)[源代码][源代码]#

绘制一组 路径

每个路径首先由 all_transforms 中的相应条目(一个 (3, 3) 矩阵列表)进行变换,然后由 master_transform 进行变换。接着,它们由 offsets 中的相应条目进行平移,该条目首先由 offset_trans 进行变换。

facecolors, edgecolors, linewidths, linestyles, 和 antialiased 是设置相应属性的列表。

offset_position 现在未使用,但保留该参数以保持向后兼容性。

基础(回退)实现会多次调用 draw_path。后端可能希望覆盖此方法,以便仅渲染一次路径数据集,然后通过不同的偏移、颜色、样式等多次引用该路径。提供了生成器方法 _iter_collection_raw_paths_iter_collection 来帮助(并标准化)后端之间的实现。强烈建议使用这些生成器,以便可以全局更改 draw_path_collection 的行为。

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

encode_string(s, fonttype)[源代码][源代码]#
finalize()[源代码][源代码]#
get_image_magnification()[源代码][源代码]#

获取传递给 draw_image 的图像的放大倍数。允许后端以与其他艺术家不同的分辨率显示图像。

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

返回一个 GraphicsContextBase 的实例。

class matplotlib.backends.backend_pdf.Stream(id, len, file, extra=None, png=None)[源代码][源代码]#

基类:object

PDF 流对象。

这没有 pdfRepr 方法。相反,调用 begin(),然后通过调用 write() 输出流的内容,最后调用 end()。

参数:
idint

流的唯一标识符。

len引用或无

一个未使用的 Reference 对象,用于流的持续时间;None 表示使用内存缓冲区,以便长度可以内联。

文件PdfFile

要写入流的底层对象。

额外从名称到任意内容的字典,或为 None

要在流头中包含的额外键值对。

png字典或无

如果数据已经是png编码的,解码参数。

compressobj#

!! 由 numpydoc 处理 !!

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

完成流。

extra#

!! 由 numpydoc 处理 !!

file#

!! 由 numpydoc 处理 !!

id#

!! 由 numpydoc 处理 !!

len#

!! 由 numpydoc 处理 !!

pdfFile#

!! 由 numpydoc 处理 !!

pos#

!! 由 numpydoc 处理 !!

write(data)[源代码][源代码]#

在流上写入一些数据。

class matplotlib.backends.backend_pdf.Verbatim(x)[源代码][源代码]#

基类:object

存储PDF命令内容以供后续在流中包含。

pdfRepr()[源代码][源代码]#
matplotlib.backends.backend_pdf.pdfRepr(obj)[源代码][源代码]#

将 Python 对象映射到 PDF 语法。