当前有效matplotlib
版本为:3.4.1
。
概述
savefig()
函数的作用是保存当前图形,它是matplotlib
输出的主要方式,可将图形保存为png
、jpg
等格式的图像,具体的输出与正在使用的后端(backends)有关。
函数的定义签名为matplotlib.pyplot.savefig(*args, **kwargs)
。
函数的调用签名为:savefig(fname, dpi=None, facecolor='w', edgecolor='w', orientation='portrait', papertype=None, format=None, transparent=False, bbox_inches=None, pad_inches=0.1, frameon=None, metadata=None)
。
函数的参数为:
-
fname
:输出文件的名称。字符串、类路径对象或类二进制对象。必备参数。
如果设置了format
参数,文件按照format
参数格式输出,文件名为fname
。注意,如果文件名不会再追加format
参数对应的扩展名或更改fname
中的扩展名。因此可能出现文件扩展名与实际输出格式不一致的情况。
如果没有设置format
参数,当fname
中包含扩展名时,会直接直接使用扩展名对应的格式输出(注意,扩展名如果不是支持的格式,将会抛出异常),当fname
中不包含扩展名时,会直接按rcParams["savefig.format"]
值(默认为png
)输出,并将扩展名追加至fname
。 -
dpi
:输出图像的分辨率(每英寸的像素点数)。浮点数或'figure'
,如果值为'figure'
,输出使用图形的分辨率,默认值为rcParams["savefig.dpi"]
(默认为'figure'
)。 -
quality
:jpg
文件输出的质量,仅对'jpg'
或'jpeg'
文件生效。整数,建议取值范围为[1-95]
,值超过100
将会禁用jpeg压缩算法,可能会导致文件过大。默认值为rcParams["savefig.jpeg_quality"]
(默认值为95
)。 -
facecolor
:图像的背景色。颜色值或'auto'
,值为'auto'
时,使用当前图形的背景色。默认值为rcParams["savefig.facecolor"]
(即'auto'
)。 -
edgecolor
:图像边缘颜色。颜色值或'auto'
,值为'auto'
时,使用当前图形边缘颜色。默认值为rcParams["savefig.edgecolor"]
(即'auto'
)。 -
orientation
:postscript
后端参数。取值范围为{'landscape', 'portrait'}
。默认值为'portrait'
。 -
papertype
:纸张大小,仅支持postscript
输出。取值范围为{'letter', 'legal', 'executive', 'ledger', 'a0' - 'a10', 'b0' - 'b10'}
。默认值为None
。 -
format
:输出格式。字符串,支持的格式为eps, jpeg, jpg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif, tiff
。默认值为None
。 -
backend
:使用非默认后端渲染文件。字符串。可选参数。默认值为None
。 -
metadata
:用于存储图像元数据的键值对。字典,取值依赖于输出图像格式和后端。可选参数。默认值为None
。 -
pil_kwargs
: 保存图像是传递给PIL.Image.Image.save
的参数。字典。可选参数。
原理
savefig()
函数的调用链大致如下:matplotlib.pyplot.savefig(*args, **kwargs)
→matplotlib.figure.savefig(self, fname, *, transparent=None, **kwargs)
→matplotlib.backend_bases.FigureCanvasBase.print_figure( self, filename, dpi=None, facecolor=None, edgecolor=None, orientation='portrait', format=None, *, bbox_inches=None, pad_inches=None, bbox_extra_artists=None, backend=None, **kwargs)
matplotlib.backend_bases.FigureCanvasBase
类定义了matplotlib
支持的输出格式及对应后端。
_default_filetypes = {
'eps': 'Encapsulated Postscript',
'jpg': 'Joint Photographic Experts Group',
'jpeg': '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',
}
_default_backends = {
'eps': 'matplotlib.backends.backend_ps',
'jpg': 'matplotlib.backends.backend_agg',
'jpeg': 'matplotlib.backends.backend_agg',
'pdf': 'matplotlib.backends.backend_pdf',
'pgf': 'matplotlib.backends.backend_pgf',
'png': 'matplotlib.backends.backend_agg',
'ps': 'matplotlib.backends.backend_ps',
'raw': 'matplotlib.backends.backend_agg',
'rgba': 'matplotlib.backends.backend_agg',
'svg': 'matplotlib.backends.backend_svg',
'svgz': 'matplotlib.backends.backend_svg',
'tif': 'matplotlib.backends.backend_agg',
'tiff': 'matplotlib.backends.backend_agg',
}