在 Python 中使用 Matplotlib 保存图像非常简单,可以通过 savefig()
方法实现。以下是详细步骤和常见用法:
基本保存方法
import matplotlib.pyplot as plt
# 1. 先创建图像
plt.plot([1, 2, 3], [4, 5, 6]) # 示例数据
plt.xlabel("X轴标签")
plt.ylabel("Y轴标签")
# 2. 保存图像(默认保存在当前工作目录)
plt.savefig("output.png") # 文件名 + 格式(如 .png, .jpg, .pdf 等)
# 3. 显示图像(如果需要)
plt.show()
关键参数说明
-
文件名与格式
- 支持多种格式:
png
,jpg
,svg
,pdf
,eps
等,根据扩展名自动推断。 - 示例:
plt.savefig("plot.jpg")
或plt.savefig("plot.pdf")
- 支持多种格式:
-
调整分辨率 (DPI)
plt.savefig("output.png", dpi=300) # 高分辨率(默认dpi=100)
-
控制图像大小
plt.savefig("output.png", bbox_inches="tight") # 去除多余空白
-
透明背景
plt.savefig("output.png", transparent=True) # 背景透明(适合PNG)
-
指定画布区域
plt.savefig("output.png", bbox_inches="tight", pad_inches=0.1) # 紧凑布局
保存前清除已有图像
如果重复保存,可能会叠加内容。建议在保存前创建新图或清除画布:
plt.clf() # 清除当前画布
plt.figure() # 新建一个画布
完整示例
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 绘制图像
plt.plot(x, y, label="sin(x)")
plt.title("正弦波")
plt.legend()
# 保存为高分辨率PDF(矢量图,适合论文)
plt.savefig("sine_wave.pdf", dpi=300, bbox_inches="tight")
# 显示图像(可选)
plt.show()
注意事项
-
保存路径:
- 如果指定路径如
plt.savefig("C:/folder/output.png")
,确保目录存在。 - 使用
os
模块检查路径:import os os.makedirs("path/to/folder", exist_ok=True) # 自动创建目录
- 如果指定路径如
-
关闭图像:
- 批量保存时,用
plt.close()
释放内存:for i in range(5): plt.plot(...) plt.savefig(f"plot_{i}.png") plt.close() # 关闭当前图像
- 批量保存时,用
通过以上方法,你可以灵活保存 Matplotlib 生成的图像到指定格式和路径。