You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Jupyter Notebook中用IPython.display加载多张图片?

嘿,这个问题我之前也碰到过!IPython/Jupyter单元格默认只会自动渲染最后一个表达式的结果,所以你两次调用Image()的时候,只有最后那只猴子会被展示出来。给你几个简单的解决办法,完全不用Matplotlib那种带轴的方式:

方法1:用display()显式输出每一张图

这是最直接的方案,先导入display函数,然后对每个Image对象主动调用它,就能强制显示每一张图片:

from IPython.display import Image, display

img1 = 'images/giraffe.png'
display(Image(url=img1))

img2 = 'images/monkey.png'
display(Image(url=img2))

这样长颈鹿和猴子的图片就会依次显示在单元格里啦。

方法2:用HTML模块拼接图片(更灵活)

如果想调整图片的大小、排版(比如让两张图并排显示),可以用HTML模块生成自定义的图片标签,完全掌控展示样式:

from IPython.display import HTML

img1_path = 'images/giraffe.png'
img2_path = 'images/monkey.png'

# 用HTML标签拼接,可自定义宽度、间距等样式
html_content = f"""
<div style="display:flex; gap:20px; margin:10px 0;">
    <img src="{img1_path}" width="250">
    <img src="{img2_path}" width="250">
</div>
"""
HTML(html_content)

这种方式不仅能避免坐标轴问题,还能让你灵活调整图片的布局,适配不同的展示需求。

补充说明一下:你之前的写法里,每个Image()都生成了对应的图片对象,但IPython单元格只会自动展示最后一个被返回的对象,前面的Image(url=img1)生成的对象没有被主动输出,所以就看不到啦。用display()或HTML的方式,就是主动告诉IPython要把这些内容渲染出来。

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

火山引擎 最新活动