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
相关产品推荐
相关产品推荐

