Matplotlib 保存图片

Matplotlib 保存图片函数

在 Matplotlib 中,我们可以使用 savefig() 这个函数来将图表保存成一张图片。

语法:

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

说明:

savefig() 函数接收以下常用参数。

  • fname(必选):用于指定保存的文件名(路径)。可以使用相对路径,也可以使用绝对路径。
  • dpi(可选,默认:100):用于设置保存图片的分辨率,即每英寸的点数(dots per inch),默认值为 figure.dpi ( 通常是 100)。更高的 DPI 值会生成更高质量的图像,但文件大小也会增加。例如,dpi=300 会生成一个分辨率更高的图片。
  • format(可选):用于指定保存的文件格式。常见的格式包括 'png'、'jpg'、'jpeg'、'pdf'、'svg'、'eps' 等。如果省略此参数,则会根据 fname 的文件扩展名自动推断格式。
  • transparent(可选,默认:False):指定是否使背景透明,是一个布尔值。如果设置为 True,保存的图片将具有透明背景(仅适用于支持透明度的格式,如 PNG)。
  • bbox_inches(可选):指定要保存的图表的范围(bounding box)。可以设置为 'tight' 来尝试去除图像周围不必要的空白区域,也可以是一个 Bbox 实例。
  • pad_inches(可选,默认:0.1):指定在 bbox_inches 周围添加的填充空白大小(英寸)。

Matplotlib 保存图片示例

接下来,我们在当前项目下创建一个名为 “imgs” 的文件夹,项目结构如下图所示。

Matplotlib保存图片的项目结构1

示例 1:Matplotlib 保存为 PNG 图片

import matplotlib.pyplot as plt

# 绘图
x = [1, 2, 3, 4]
y = [16, 15, 18, 17]
plt.plot(x, y)

# 显示
plt.savefig('imgs/plot.png')

运行之后,我们可以发现 imgs 文件夹中多了一个 plot.png,项目结构如下图所示。此时打开 plot.png,效果如下图所示。

Matplotlib保存图片的项目结构2

Matplotlib保存图片

分析:

想要将图表保存为一张图片,除了使用 savefig() 函数之外,其实我们还可以使用 Matplotlib 自带的工具栏,也就是点击下图所示的按钮也可以实现。

Matplotlib的工具栏

示例 2:Matplotlib 保存为不同格式和设置 DPI

import matplotlib.pyplot as plt

# 设置
plt.rcParams['font.family'] = ['SimHei', 'PingFang SC']
plt.rcParams['axes.unicode_minus'] = False

# 绘图
x = [1, 2, 3, 4]
y = [16, 15, 18, 17]
plt.plot(x, y)
plt.title('一个简单的折线图')
plt.xlabel('X 轴')
plt.ylabel('Y 轴')

# 保存为 JPG 格式,设置 DPI 为 300
plt.savefig('imgs/plot.jpg', format='jpg', dpi=300)

# 保存为 SVG 格式,去除空白区域
plt.savefig('imgs/plot.svg', format='svg', bbox_inches='tight')

# 保存为 PDF 格式,背景透明
plt.savefig('imgs/plot.pdf', format='pdf', transparent=True)

# 显示(可选)
plt.show()

运行之后,我们可以发现 imgs 文件夹中多了 plot.jpg、plot.svg、plot.pdf 这几个文件,项目结构如下图所示。

Matplotlib 保存为不同格式

分析:

在这个例子中,我们给小伙伴们演示了如何将同一张图表保存为不同格式的文件,并设置了不同的参数。

文件格式选择建议

不同的文件格式,有不同的优缺点。

  • JPG/JPEG: 有损压缩,适合保存照片等颜色丰富的图像,文件大小相对较小。
  • PNG: 无损压缩,适合保存线条图、散点图等,支持透明背景。
  • PDF: 矢量格式,适合保存需要高质量打印或缩放的图表。
  • SVG: 矢量格式,适合在网页中使用,可以无损缩放。
给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号