Python 将matplotlib子批次发送到多个pdf页面

Python 将matplotlib子批次发送到多个pdf页面,python,matplotlib,pdf,subplot,pdfpages,Python,Matplotlib,Pdf,Subplot,Pdfpages,我正在尝试将matplotlib子批次打印到多个页面。我已经做了相当彻底的网络搜索,并找到了类似的帖子(并尝试实现它们的代码),但我仍然无法让我的帖子正常工作 目前,我已经创建了所有必要的绘图,但它只在单个pdf页面上绘制了前8个(共15个) 我知道这与我如何设置for循环有关-我可能在错误的位置有一个pdf.save(),但我已经修补了几个小时,无法解决它 如果您对我的代码有任何反馈,或者对我如何提出这个问题有任何反馈,请让我知道。我是新来的,对Python也不熟悉 请参见下面的代码: pdf

我正在尝试将matplotlib子批次打印到多个页面。我已经做了相当彻底的网络搜索,并找到了类似的帖子(并尝试实现它们的代码),但我仍然无法让我的帖子正常工作

目前,我已经创建了所有必要的绘图,但它只在单个pdf页面上绘制了前8个(共15个)

我知道这与我如何设置for循环有关-我可能在错误的位置有一个pdf.save(),但我已经修补了几个小时,无法解决它

如果您对我的代码有任何反馈,或者对我如何提出这个问题有任何反馈,请让我知道。我是新来的,对Python也不熟悉

请参见下面的代码:

pdf_page_num = math.ceil(len(common_bores)/8)

fig_counter = 0
fig = plt.figure(figsize=(8.27, 11.69))
with PdfPages("all_hydrographs_multipage.pdf") as pdf: 
    for z in range(1, pdf_page_num + 1):
        print("Page Number = " + str(z))
        for i in range(1,9):
            print("Figure number = " + str(i))
            plt.subplot(4, 2, i)
            model_data = model_df.loc[model_df['BORE_ID'] == common_bores[fig_counter]]

            model_data = model_data.sort_values(by=["Date"])
            model_data_mask = np.isfinite(model_data["Head"])


            actual_data = actual_df.loc[actual_df['BORE_ID'] == common_bores[fig_counter]]
            actual_data = actual_data.sort_values(by=["Date"])
            
            
            plt.plot(model_data["Date"][model_data_mask], model_data["Head"][model_data_mask], c = "b", linestyle = "-",
                        linewidth = 0.7, alpha = 0.8, label = "Simulated")
            plt.scatter(actual_data["Date"], actual_data["Head"], linewidth=0,  marker='.',
                        color='r', alpha=0.8, label='Observed')
            # plt.legend(loc=8, ncol=2, fontsize=6, numpoints=3, frameon=False)
            # plt.title(common_bores[fig_counter], fontsize = 12, weight = "bold")
            
            fig_counter = fig_counter + 1
            
            plt.tight_layout()
            plt.close()
        pdf.savefig()
    
pdf.close()