matplotlib可以把结果以多种方式保存,比如以PNG文件,以MP4文件,以GIF文件等等,但是PDF文件在日常生活里使用也很高,因为电子书比较喜欢使用PDF的方式出版,这样可以跨不同的平台共享文件,而文件的格式不会改变,并且很容易输出纸质版本。既然PDF有这么大的应用,那么matplotlib也不会缺席这样的功能,并且它输出PDF文件的过程非常简单,只要数行代码就可以解决。
要能保存PDF文件,先要导入matplotlib的后端处理系统,其中backends.backend_pdf是管理PDF的功能,我们需要使用它的PdfPages对象,定义如下:
这是一个可以保存多页的PDF文件的封装类。其中有三个参数:
- filename:表示保存文件的名称,或路径名称。
-
keep_empty:布尔类型,当设置为False时,当PDF文件为空时自动删除,否则保留。
-
metadata:字典类型dict,用来设置一些PDF相关的属性。
比如: {'Creator': 'My software', 'Author': 'Me', 'Title': 'Awesome'}
相关内容有:'Title', 'Author', 'Subject', 'Keywords', 'Creator', 'Producer', 'CreationDate', 'ModDate', 和 'Trapped'
。
了解这个类之后,再去使用就是易如反掌,直接拿前面学习的例子,再修改一下,就可以输出如下的PDF文件了:
整个例子的代码如下:
在里面通过这行代码创建PDF文件:
这是python环境管理器的方式打开,自动关闭文件。接着创建两页PDF,使用pdf.savefig(fig)来保存,最后记得关闭画布,再创建新的画布保存。