首页 > 编程笔记 > Python笔记 阅读:4

Matplotlib savefig():将图表保存为图片文件(附带实例)

将图表保存为图片文件时,savefig() 函数或 Figure 对象的 savefig() 方法的第一个参数用于指定图片文件的路径和名称。

如果指定的文件名包含扩展名,则会将图标保存为与扩展名对应的图片文件类型;如果指定的文件名不包含扩展名,则默认保存为png类型的图片文件。

下面的代码将当前图表以“图表测试”作为名称,保存到“E:\测试数据\Python”文件夹中:
plt.savefig('E:\\测试数据\\Python\\图表测试')
由于没有为文件名提供扩展名,所以默认保存为 png 文件类型,最终创建的图片文件的名称是“图表测试.png”,如下图所示:


图 1 将图表保存为图片文件

下面的代码是使用 Figure 对象的 savefig() 方法实现相同的功能,它将 fig 变量引用的图表保存为图片文件:
fig.savefig('E:\\测试数据\\Python\\图表测试')

下面的代码为文件名提供了扩展名“.jpg”,所以会将图表保存为 jpg 文件类型:
fig.savefig('E:\\测试数据\\Python\\图表测试.jpg')

Matplotlib设置图片的分辨率

将图表保存为图片文件时,默认使用图形的分辨率作为图片文件的分辨率。如果在 savefig() 函数或 savefig() 方法中指定 dpi 参数,则可以为图片文件设置一个与图形不同的分辨率。

下面的代码将图片保存到图片文件的分辨率设置为 200dpi:
fig.savefig('E:\\测试数据\\Python\\图表测试.jpg', dpi=200)
图表所在的图形是按照默认尺寸创建的,即 6.4 英寸× 4.8 英寸,分辨率为 200dpi,则图片文件的分辨率就是 1280 像素×960 像素。

进入图片所在的文件夹,右击图片并选择“属性”命令,然后在打开的对话框中可以查看图片的分辨率,如下图所示:


图 2 查看图片的分辨率

Matplotlib为整个图形选择一种主题风格

如果想要快速改变整个图形的外观,一种简单有效的方法是使用 Matplotlib 提供的主题风格。为了给图形设置一种主题风格,需要使用 Matplotlib 的 style 模块中的 use() 函数,将主题风格的名称以字符串格式作为参数传递给use函数。

下面的代码将列出 Matplotlib 提供的所有主题风格的名称:
import matplotlib.style as sty
print(sty.available)
代码的运行结果如下:

['Solarize_Light2', '_classic_test_patch', '_mpl-gallery', '_mpl-gallery-nogrid', 'bmh', 'classic', 'dark_background', 'fast', 'fivethirtyeight', 'ggplot', 'grayscale', 'seaborn-v0_8', 'seaborn-v0_8-bright', 'seaborn-v0_8-colorblind', 'seaborn-v0_8-dark', 'seaborn-v0_8-dark-palette', 'seaborn-v0_8-darkgrid', 'seaborn-v0_8-deep', 'seaborn-v0_8-muted', 'seaborn-v0_8-notebook', 'seaborn-v0_8-paper', 'seaborn-v0_8-pastel', 'seaborn-v0_8-poster', 'seaborn-v0_8-talk', 'seaborn-v0_8-ticks', 'seaborn-v0_8-white', 'seaborn-v0_8-whitegrid', 'tableau-colorblind10']

不同的 Python 版本可能会略有区别。从主题风格的名称可以看出,很多主题风格都来自于其他可视化库,例如 Seaborn。

有了主题风格的名称,为 Matplotlib 图形设置主题风格就很容易了。下面的代码为创建的柱形图设置名为“_mpl-gallery”的主题风格:
import matplotlib.pyplot as plt
import matplotlib.style as sty
sty.use('_mpl-gallery')
x = range(1, 7)
height = [20, 50, 90, 60, 30, 70]
fig, ax = plt.subplots()
ax.bar(x, height)
plt.show()
效果如下图所示:


图 3 设置主题风格

为了使主题风格生效,需要将设置主题风格的代码放在创建图表的代码之前。

将主题风格设置为“seaborn-v0_8”的效果如下图所示:


图 4 设置另一种主题风格

相关文章