一次性将所有打开的 Matplotlib 图形保存到一个文件中
要一次性将所有打开的 Matplotlib 图形保存到一个文件中,我们可以采取以下步骤:
- 设置图形大小并调整子图之间和周围的填充。
- 使用 **figure()** 方法创建一个新的图形 **(fig1)** 或激活一个现有的图形。
- 使用 **plot()** 方法绘制第一条线。
- 使用 **figure()** 方法创建一个新的图形 **(fig2)** 或激活一个现有的图形。
- 使用 **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)** 保存到项目目录中。
广告