Matplotlib savefig()方法

Matplotlib savefig()方法

在使用Matplotlib绘制图表时,我们通常需要将图表保存为文件。Matplotlib提供了一个非常方便的方法——savefig()。本文将介绍savefig()方法的使用,并详细讲解如何控制保存图像的大小。

阅读更多:Matplotlib 教程

savefig()方法的基本用法

savefig()是Matplotlib中的一个函数,用于将当前的图形保存为文件。该函数的基本语法如下:

savefig(fname, dpi=None, format=None, bbox_inches=None, pad_inches=0.1, bbox_extra_artists=None, transparent=False, metadata=None)

其中,fname表示保存文件的名字和路径。你可以指定保存文件的格式,如PNG、PDF等,若未指定,则将文件格式作为文件名的后缀名,如“test.png”。dpi是图像分辨率,表示每英寸包含的像素点数,可以指定具体的数值,若未指定,则使用默认值。format表示保存文件的格式,可以是PNG、PDF、SVG、PS、EPS等。bbox_inches表示要保存的区域。pad_inches表示要添加的边距量。bbox_extra_artists表示要包含在保存区域之外的艺术家。transparent表示是否保存透明背景,metadata指定元数据信息。

下面是一个示例:

import matplotlib.pyplot as plt

# 画出一个简单的图形
x = [1, 2, 3, 4]
y = [1, 4, 2, 3]
plt.plot(x,y)

# 保存成PNG格式的图片
plt.savefig("test.png")

运行该程序,就可以在程序所在目录下生成一个名为“test.png”的图像文件。

控制保存图像的大小

在生产环境中,我们通常需要控制保存图像的大小。一般来说,可以在调用plot()函数时,设置图形的大小,如下所示:

import matplotlib.pyplot as plt

# 定义图形大小
fig = plt.figure(figsize=(6,4))

# 画出一个简单的图形
x = [1, 2, 3, 4]
y = [1, 4, 2, 3]
plt.plot(x,y)

# 保存成PNG格式的图片
plt.savefig("test.png")

在这个例子中,我们定义了一个6×4英寸的图形,然后使用plot()函数画出一个简单的图形,并调用savefig()函数保存成PNG格式的图片。

有时候,我们需要在保持图形纵横比的情况下缩放图形大小。这可以通过在调用savefig()函数之前,调用tight_layout()函数实现。如下所示:

import matplotlib.pyplot as plt

# 画出一个简单的图形
x = [1, 2, 3, 4]
y = [1, 4, 2, 3]
plt.plot(x,y)

# 调整图形和保存图像
plt.tight_layout()
plt.savefig("test.png")

在这里,我们用plot()函数画出了一个简单的图形,并使用tight_layout()函数调整图形。tight_layout()函数可以根据图形的纵横比,自动调整图形的大小和位置。调整完图形后,我们再使用savefig()函数将图像保存成PNG格式。

修改图形大小的参数

Matplotlib还提供了其他参数来控制图形的大小。例如,可以在savefig()函数中设置dpi参数来指定每英寸包含的像素点数。dpi值越高,图像的细节就越清晰,但生成的图像文件也就越大。

另外,我们还可以通过设置figure对象的subplotpars属性来控制图形的大小和边距。subplotpars是一个SubplotParams对象,包含了许多属性,如left、right、bottom、top、hspace等,可以分别用来设置图形的左、右、下、上边距和子图之间的水平距离。下面是一个示例:

import matplotlib.pyplot as plt
import matplotlib as mpl

# 设置新的subplotpars
new_subplotpars = mpl.figure.SubplotParams(left=0.1, right=0.9, bottom=0.1, top=0.9, wspace=0.4, hspace=0.4)
mpl.rcParams["figure.subplot"] = new_subplotpars

# 画出一个简单的图形
x = [1, 2, 3, 4]
y = [1, 4, 2, 3]
plt.plot(x,y)

# 保存成PNG格式的图片
plt.savefig("test.png")

在这个例子中,我们先使用matplotlib中的subplotpars模块创建了一个新的SubplotParams对象new_subplotpars,然后用它来更新了matplotlib的全局参数。这样,就可以在绘制图形时,用新的subplotpars对象来控制图形的大小和边距。

总结

savefig()是Matplotlib中用来保存图形为文件的重要函数之一。控制保存图像的大小可以通过调整图形的尺寸、设置subplotpars参数等多种方式实现。在使用时需要仔细考虑图像的分辨率等因素,在保持图像清晰度的同时,尽量减小图像文件的大小。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程