



在交互式环境(比如IPython控制台或Jupyter notebook)中,实时显示图形是非常正常的。然而,在很多情况下,将图形直接存储到文件中比在屏幕上渲染更合适。在接下来的例子中,我们将学习如何将图形直接保存到文件中,而不是在屏幕上显示它。
你需要准备绘图数据以及存储输出结果的路径或文件对象。我们将结果存储到当前目录中的savingfigs.png文件中。在这个例子中,我们将绘制以下数据:
让我们看看如何使用Matplotlib绘制这条曲线,并将生成的图形保存到文件中(无须与绘图用户界面进行交互)。
以下步骤演示了如何将Matplotlib图形直接保存到文件中:
1.像往常一样创建图形,并添加必要的标签、标题和注释。图形将以当前状态写入文件,因此对图形的任何更改都需在保存之前完成:
2.我们对fig使用savefig方法,将这个图保存到文件中。唯一需要的参数是输出路径或可以写入图形的类文件对象。我们可以通过提供适当的关键字参数来调整输出格式的各种设置,比如分辨率。我们设置输出图的 每英寸点数 (DPI)为300,这对大多数应用来说是一个合理的分辨率。
Matplotlib会根据给定文件的扩展名推断我们希望将图形保存为 可移植网络图形 (PNG)格式。或者,可以通过关键字参数(使用format关键字)显式地设置格式,否则它将从配置文件中退回到默认格式。
savefig方法会为输出格式选择合适的后端,然后以该格式渲染当前的图形。生成的图像数据将写入指定的路径或类文件对象中。如果你手动创建了一个Figure实例,则可以通过在该实例上调用savefig方法来实现相同的效果。
savefig例程需要一些额外的可选关键字参数来自定义输出图像。例如,可以使用dpi关键字指定图像的分辨率。本章中的图形就是通过将Matplotlib图形保存到文件中生成的。
可用的输出格式包括PNG、 可缩放矢量图形 (SVG)、 PostScript (PS)、 封装的PostScript (EPS)和 便携式文档格式 (PDF)。如果安装了Pillow包,图形还可以保存为JPEG格式,但从Matplotlib 3.1版本开始,Matplotlib不再原生支持JPEG格式。对于JPEG图像,还有一些额外的自定义关键字参数,例如quality和optimize。可以通过metadata关键字传递图像元数据字典,在保存时将该字典写为图像元数据。
请参考Matplotlib官方网站上的示例库,它包含了使用几种常见的Python图形用户界面(GUI)框架将Matplotlib图形嵌入GUI应用程序的示例。