详解Python中plt.savefig的使用

发布时间:2023-05-18

一、简介

Python中的matplotlib库可用于绘制数据图表,而plt.savefig则是用于将绘制的图表保存为图片文件的函数。在绘制图表时,plt.savefig可以帮助用户将数据图表保存为多种常用格式的图片文件,简化用户的工作。本文将介绍plt.savefig的使用方法,包括文件格式选择、参数设置等。

二、保存为图片

plt.savefig将当前的绘图窗口保存为一个指定格式的文件,支持多种格式,包括PNG、PDF、SVG、JPEG和TIFF等。该函数的基本调用方法如下:

plt.savefig(filename, 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)

其中filename是必须参数,表示保存的文件名及路径,格式可为字符串或者路径对象。图像格式由文件名的扩展名确定,例如.png表示保存为PNG格式文件。

三、设置图像大小和DPI

可以通过设置dpi参数,调节输出图像的清晰度和大小。如果不指定dpi,那么将采用默认的dpi值。dpi的默认值为100。 可以通过设置figsize参数,调节图像的大小。例如,代码中figsize=(8, 6)表示将图像宽度设置为8英寸,高度设置为6英寸。

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y = np.sin(x)
plt.plot(x, y)
plt.xlim(-4.0, 4.0)
plt.ylim(-1.0, 1.0)
plt.savefig("sin_wave_dpi.png", dpi=200)  # dpi值为200
plt.savefig("sin_wave_size.png", figsize=(8, 6))  # 设置图像大小

四、设置图片边界和颜色

可以通过通过设置bbox_inches参数,设置保存图像的边界尺寸,以去掉图片周围多余的空白部分。其中参数tight可以使图像更加紧凑。 可以通过设置facecolor参数,设置图像的背景颜色。也可以通过设置edgecolor参数,设置图像的边框颜色。

plt.plot(x, y)
plt.xlim(-4.0, 4.0)
plt.ylim(-1.0, 1.0)
plt.savefig("sin_wave_bbox.png", bbox_inches='tight', pad_inches=0)  # 去掉多余空白部分
plt.savefig("sin_wave_color.png", facecolor='g', edgecolor='r')  # 设置背景和边框颜色

五、设置图片的透明度

可以通过设置transparent参数,设置保存图像的透明度,使得图像更加半透明。

plt.plot(x, y)
plt.xlim(-4.0, 4.0)
plt.ylim(-1.0, 1.0)
plt.savefig("sin_wave_transparent.png", transparent=True)  # 设置透明度

六、保存为PDF格式

当需要将绘制的数据图表保存为PDF格式文件时,可使用如下方法。

plt.plot(x, y)
plt.xlim(-4.0, 4.0)
plt.ylim(-1.0, 1.0)
plt.savefig("sin_wave.pdf", format='pdf', dpi=1000)  # 保存为PDF

七、保存为SVG格式

当需要将绘制的数据图表保存为SVG格式文件时,可使用如下方法。

plt.plot(x, y)
plt.xlim(-4.0, 4.0)
plt.ylim(-1.0, 1.0)
plt.savefig("sin_wave.svg", format='svg', dpi=1000)  # 保存为SVG

八、总结

本文的重点是介绍plt.savefig函数的使用方法和注意事项。在使用plt.savefig函数时,需要注意保存的文件名和文件格式,以及设置dpifigsize等参数,以得到最佳的输出结果。