如何按顺序刷新 IPython Notebook 中的绘图?

How to flush plots in IPython Notebook sequentially?

for i in range(3):
   print("Info ",i)
   plt.figure()
   plt.plot(np.arange(10)*(i+1))

在IPython笔记本中,这将首先打印出三个信息消息,然后绘制三个数字。

我可以使用哪个命令强制打印和绘图的顺序显示?即print"Info 0"、plot"Figure 0"、print"Info 1"、plot"Figure 1"等

这是一个简单的基本示例。在我的例子中,它要复杂得多,正确地获得行为很重要。

IPython 首先计算单元格中的所有代码。完成后,打开的图形将绘制到输出区域。

如果这不是您想要的,您可以手动显示您的数字。但是,您必须确保在单元格计算结束之前关闭所有新创建的图形对象。

这是一个简短的例子:

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
from IPython.display import display

for i in range(3):
    print("Info ",i)
    fig, ax = plt.subplots()
    ax.plot(np.arange(10)*(i+1))
    display(fig)
    plt.close()

只需在所需位置添加 plt.show()

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

for i in range(3):
    print "Info ",i
    plt.plot(np.arange(10)*(i+1))
    plt.show()