IPython: 如何在不同的单元格中显示相同的图形?

IPython: How to show the same plot in different cells?

总的来说,我对 IPython 笔记本、Jupyter 和 Python 还是个新手。

我正在使用以下代码在 Jupyter 笔记本中创建散点图:

import numpy as np
import matplotlib.pyplot as plt

n = 1024
X = np.random.normal(0, 1, n)
Y = np.random.normal(0, 1, n)
plt.axes([0.025, 0.025, 0.95, 0.95])
plt.scatter(X, Y, s=50)

plt.show()

我的问题是,如何获得对绘图对象的引用,以便稍后在笔记本中的不同单元格中使用它?此外,我可能需要在再次显示之前修改情节。

此外,我的笔记本顶部有 %matplotlib inline

以下是关于我的环境的一些信息:

试试matplotlib的面向对象接口——matplotlib.figure;您可以根据需要使用创建的 Figure 对象的引用。

  • 创建图形对象 - fig = plt.figure()
  • 向其添加轴 - ax = fig.add_axes([0.025, 0.025, 0.95, 0.95])
  • 在创建的轴上绘图 - ax.plot(X, Y)

我找到解决办法了!基本上,您使用 fig, ax = plt.subplots() 创建一个图形和轴,然后使用 ax 变量进行绘制(可能在多个单元格中)。在要重新绘制图形的任何单元格中,只需将 fig 写为单元格的最后一行,结果单元格使用更新后的图形作为输出。
有关更多详细信息,请参阅我的回答