如何在单个IPython笔记本中多次显示相同的matplotlib图?

How do I show the same matplotlib figure several times in a single IPython notebook?

我使用matplotlib.pyplot的IPython笔记本,我经常创建一个需要相当大的代码块来生成的图。然后我想保存对象并使用完全相同的图形/轴对,以便稍后合并到另一个图中。

例如,假设我有一些散射图的x-y数据对。我想稍后显示点数,然后是几个单元格 - 可能还有其他调用pyplot来制作其他不相关的数字 - 我想再次显示这个数字,以便我可以用回归线或某些数据绘制它其他图形。

在下面我附上的图片中,我有一个简短的笔记本;我希望单元格#2中的数字在单元格#3中绘制而不再调用pyplot.scatter。

基本上,我想再次显示图形而不重复所有代码。这样做有什么选择?我无法通过调用show()或draw()或通过将单元格中的当前图形对象设置为我保存的图形对象来完成此操作。欢迎任何建议。谢谢!

附:我知道如果我重复使用图形并在其上绘图,则对象将发生变化,因此图形对象的状态可能与先前IPython单元格中绘制的绘图不匹配。这对我的工作没问题。

示例IPython笔记本


在之前的单元格中分配myFigure之后,只需在任何单元格中调用myFigure

例如在单元格1中:

1
2
3
In [1]:
myFigure, myAx = plt.subplots()
myAx.plot([1,2,3])

在那之后:

1
2
In [2]:
myFigure

这将显示myFigure