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
。
以下是关于我的环境的一些信息:
- Python: 3.5.2 64 位 [MSC v.1900 64 位 (AMD64)]
- IPython: 4.2.0
- numpy: 1.11.1
- scipy: 0.17.1
- matplotlib:1.5.1
- 同情: 1.0
- OS: Windows 7 6.1.7601 SP1
试试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
写为单元格的最后一行,结果单元格使用更新后的图形作为输出。
有关更多详细信息,请参阅我的回答 。
总的来说,我对 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
。
以下是关于我的环境的一些信息:
- Python: 3.5.2 64 位 [MSC v.1900 64 位 (AMD64)]
- IPython: 4.2.0
- numpy: 1.11.1
- scipy: 0.17.1
- matplotlib:1.5.1
- 同情: 1.0
- OS: Windows 7 6.1.7601 SP1
试试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
写为单元格的最后一行,结果单元格使用更新后的图形作为输出。
有关更多详细信息,请参阅我的回答