将多个figure保存到一个matplotlib PDF文件中


要同时将多张图片保存到一个PDF文件中,我们可以按下列步骤进行

步骤

  • 设置figure大小并调整子图之间的边距

  • 创建一个新的figure (fig1)或使用 figure() 方法激活现有的figure

  • 使用plot() 方法绘制第一条线

  • 创建一个新的figure (fig2)或使用 figure() 方法激活现有的figure

  • 使用plot() 方法绘制第二条线

  • 初始化一个变量filename来制作一个PDF文件

  • 创建用户自定义函数 save_multi_image() 将多张图片保存到一个PDF文件中

  • 使用filename调用函数save_multi_image()

  • 创建一个新的PdfPages对象

  • 获得打开figure的数量

  • 迭代打开的figure,将它们保存到文件中

  • 关闭创建的PDF对象

示例

from matplotlib import pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

fig1 = plt.figure()
plt.plot([2, 1, 7, 1, 2], color='red', lw=5)

fig2 = plt.figure()
plt.plot([3, 5, 1, 5, 3], color='green', lw=5)


def save_multi_image(filename):
    pp = PdfPages(filename)
    fig_nums = plt.get_fignums()
    figs = [plt.figure(n) for n in fig_nums]
    for fig in figs:
        fig.savefig(pp, format='pdf')
    pp.close()

filename = "multi.pdf"
save_multi_image(filename)

输出

执行后,它将在项目目录中创建一个名为“multi.pdf”的PDF文件,并将以下两张图片保存到该文件中

更新于:09-10-2021

4K+浏览量

开启你的 职业

完成课程以获得认证

开始
广告