You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python(Jupyter Notebook)多图导出PDF问题求助

解决Jupyter Notebook中多图导出PDF的问题

看起来你遇到的核心问题是缺少将多个独立创建的Matplotlib图表统一导出到PDF的逻辑,再加上前两个图表的尺寸设置过于夸张(figsize=(15,200)),很可能导致排版异常或导出失败。下面给你一个可靠的解决方案:

核心思路:使用PdfPages批量保存图表

Matplotlib自带的PdfPages类可以轻松将多个独立的Figure对象写入同一个PDF文件,每个图表会自动成为PDF的一页。同时我们需要调整不合理的图表尺寸,避免PDF页面异常。

修改后的代码如下:

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
from matplotlib.backends.backend_pdf import PdfPages

# 假设df1、df2、df3已正确加载数据
df1_subs = df1['Subs']
# 调整高度为合理值,200的高度会导致PDF页面异常巨大
fig1 = plt.figure(figsize=(15, 10))
df1_subs.plot()

df2_subs = df2['Subs']
fig2 = plt.figure(figsize=(15, 10))
df2_subs.plot()

fig3 = plt.figure(figsize=(15, 13))
sns.heatmap(df3)

# 批量保存所有图表到PDF
with PdfPages('multiple_plots.pdf') as pdf:
    pdf.savefig(fig1)
    pdf.savefig(fig2)
    pdf.savefig(fig3)
    plt.close('all')  # 关闭所有图表,释放内存资源

关键注意点:

  • 调整图表尺寸:原代码中figsize=(15,200)的高度设置过于极端,会生成几乎无法正常显示的PDF页面,建议根据你的数据可视化需求调整为合理数值(比如10)。
  • 明确保存逻辑:PdfPages通过上下文管理器(with语句)确保文件正确关闭,savefig()方法逐个写入每个Figure对象。
  • 清理资源:最后调用plt.close('all')可以避免Jupyter Notebook中残留未关闭的图表,影响后续操作。

如果你之前尝试过Jupyter自带的"下载为PDF"功能,这个功能依赖LaTeX环境,且对大尺寸图表的兼容性较差,用代码主动保存的方式会更可控、可靠。

内容的提问来源于stack exchange,提问作者Alexander Troitsky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:11:44