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

时间:2016-08-03 21:42:00

标签: python matplotlib ipython-notebook jupyter-notebook

我一般都是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 bit(AMD64)]
  • IPython: 4.2.0
  • numpy: 1.11.1
  • scipy: 0.17.1
  • matplotlib: 1.5.1
  • 同情: 1.0
  • 操作系统:Windows 7 6.1.7601 SP1

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:-1)

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

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