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

Jupyter中Matplotlib Axes无法重复显示的问题及原理咨询

为何Jupyter中无法重复显示Matplotlib的Axes对象?

我一直想弄清楚这个问题,也在Stack Overflow上搜索过相关答案,猜测背后有简单的解释,希望能了解其中原理。

核心疑问:能否在Jupyter的一个单元格中显示Matplotlib的Axes对象,然后在另一个单元格中再次显示它?实际测试发现无法实现——Axes似乎在显示一次后就“失效”了,如同一次性工具。我可以向其添加新绘图元素并重新显示对应的Figure,但Axes本身无法再直接显示。

复现步骤

1. 第一个单元格:创建初始绘图

执行以下代码,此时能正常显示折线图:

import matplotlib.pyplot as plt

some_x_data = [11.4, 23.11, 27.93, 33.47, 45.98, 47.23, 53.84, 65.34, 87.23]
some_y_data = [(5.3 * x * (10 - x/10)) for x in some_x_data]

fig = plt.figure()
ax = fig.add_subplot()
ax.plot(some_x_data, some_y_data)

2. 第二个单元格:尝试直接显示Axes

执行以下代码:

ax

仅返回对象的字符串表示,无图形显示:

<AxesSubplot:>

若执行fig,能显示对应的Figure,但其中没有坐标轴内容。

3. 第三个单元格:向Axes添加新元素并尝试显示

执行以下代码添加散点图:

ax.scatter([40, 100], [900, 1000])

仅返回散点集合的对象信息,无图形显示:

<matplotlib.collections.PathCollection at 0x7fb5fc0a7c10>

执行fig可看到更新后的Figure,但依旧没有坐标轴内容。

技术原理疑问

想请教背后的技术原理:为何无法重复显示Axes对象?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 08:15:30