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

Python如何在同一输出结果中展示多张绘图(Jupyter适用)

实现方案

方案1:基于Matplotlib子图容器生成组合图(排版灵活度最高)

你可以直接创建带多子区域的画布对象,将子图轴传入绘图函数,两张图绘制完成后会统一输出到同一个结果块,示例代码如下:

import matplotlib.pyplot as plt
import numpy as np

# 模拟你现有的两个绘图函数
def draw_line(ax):
    x = np.linspace(0, 2*np.pi, 200)
    ax.plot(x, np.sin(x), c='blue')
    ax.set_title("折线图")

def draw_scatter(ax):
    x = np.random.rand(100)
    y = np.random.rand(100)
    ax.scatter(x, y, c='red', alpha=0.6)
    ax.set_title("散点图")

# 创建1行2列的画布布局,可自行调整行列数、画布尺寸
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))
# 传入子图轴对象完成绘制
draw_line(ax1)
draw_scatter(ax2)
# 自动调整子图间距避免标题遮挡
plt.tight_layout()
plt.show()

如果你的绘图函数已经封装完成不方便修改传入参数,可以用下面的方案2。

方案2:同Cell内依次调用绘图函数(零代码修改成本)

Jupyter默认会把同一个代码Cell内的所有绘图结果合并到同一个输出块中,你只需要在同一个Cell里按顺序调用两个绘图函数即可,不需要修改原有函数逻辑:

# 你的原有绘图函数,无需任何修改
def your_plot_func1():
    plt.plot([1,3,5,7], [2,5,3,8])
    plt.show()

def your_plot_func2():
    plt.bar(["A","B","C","D"], [4,2,7,5], color='orange')
    plt.show()

# 同Cell内依次调用
your_plot_func1()
your_plot_func2()

注意:如果调用后看不到两张图,检查函数内部是否存在plt.close()这类主动关闭画布的语句,删除即可正常输出

方案3:自定义HTML布局实现并排展示

如果需要调整两张图的排布样式(比如并排、设置间距等),可以将绘图转成base64后拼接HTML实现自定义布局:

from IPython.display import HTML
import base64
from io import BytesIO

# 绘图转base64工具函数
def fig_to_img(fig):
    buf = BytesIO()
    fig.savefig(buf, format='png', bbox_inches='tight')
    buf.seek(0)
    return base64.b64encode(buf.read()).decode('utf-8')

# 生成两张图
fig1 = plt.figure()
plt.plot([1,2,3,4], [10,20,15,25])
plt.close(fig1)
img1 = fig_to_img(fig1)

fig2 = plt.figure()
plt.pie([30,20,50], labels=["类1","类2","类3"])
plt.close(fig2)
img2 = fig_to_img(fig2)

# 渲染并排布局
HTML(f'''
<div style="display:flex;gap:20px;align-items:center;">
    <img src="data:image/png;base64,{img1}" style="width:48%">
    <img src="data:image/png;base64,{img2}" style="width:48%">
</div>
''')

内容的提问来源于stack exchange,提问作者Ahmed Abozaid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:36:02