一次性将所有打开的Matplotlib图形保存在一个文件中
要一次性将所有打开的Matplotlib图形保存在一个文件中,我们可以按照以下步骤进行操作−
- 设置图形大小并调整子图之间和周围的填充。
- 创建一个新的图形 (fig1) 或使用 figure() 方法激活现有的图形。
- 使用 plot() 方法绘制第一条线。
- 创建一个新的图形 (fig2) 或使用 figure() 方法激活现有的图形。
- 使用 plot() 方法绘制第二条线。
- 初始化一个变量 filename ,以制作一个pdf文件。
- 创建一个用户定义的函数 save_multi_image ,并调用它以一次性保存所有打开的matplotlib图形。创建一个新的 PdfPages 对象 pp。
- 获取打开图形的数量。
- 遍历打开的图形并将它们保存到文件中。
- 要显示图形,请使用 show() 方法。
示例
from matplotlib import pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
plt.rcParams["figure.figsize"] = [7.50, 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)
输出
当我们执行代码时,它将把以下两个图形保存为PDF文件 (multi.pdf) 在项目目录中。