繁体   English   中英

matplotlib 在 Jupyter 中重用轴

[英]matplotlib reusing axes in Jupyter

这是一个我一直想要回答的问题。 我花了很多时间寻找关于 SO 的答案。 这个问题是相关的: Matplotlib - How to edit the same plot with different functions? .

我猜这有一个简单的解释,我有兴趣了解它。

问题是:

我可以在 Jupyter 中的一个单元格中显示一个轴,然后在另一个单元格中再次显示它吗? 看来我不能。 似乎一旦显示轴,它就会以某种方式“被消耗”,就像它是一次性工具一样。 我可以添加额外的图并重新显示图形(没有任何轴),但轴本身是“用过的”。

这是显示此行为的示例:

使用 Jupyter,我可以执行以下操作在第一个单元格中创建 plot :

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)

plot 显示:

Matplotlib 线图

现在,在另一个单元格中,我希望再次重新显示轴,所以我执行以下操作:

ax

但没有显示轴。 相反,返回值为:

<AxesSubplot:>

但是,如果不是ax ,而是使用fig运行一个单元格,那么我会看到该图但没有轴:

fig

原始轴的图像,但没有 x 或 y 轴

接下来,我尝试将新的 plot 添加到另一个单元格中的轴:

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

同样,没有显示任何数字,但会生成一个返回值:

<matplotlib.collections.PathCollection at 0x7fb5fc0a7c10>

然后我可以通过在另一个单元格中调用fig来查看更新的图形,但再次没有附加任何轴:

原始图,但添加了两个额外的散点,但没有任何 x 或 y 轴

幕后发生了什么? 为什么我不能只重新显示轴?

感谢您提供任何见解。

PS我假设这是一个重复的问题,但我根本找不到答案。 如果这是重复的,请添加链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM