【问题标题】:How to flush plots in IPython Notebook sequentially?如何按顺序刷新 IPython Notebook 中的绘图?
【发布时间】:2015-12-04 17:11:09
【问题描述】:
for i in range(3):
   print("Info ",i)
   plt.figure()
   plt.plot(np.arange(10)*(i+1))

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

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

这是一个简单的简单示例。就我而言,它要复杂得多,正确地获得行为很重要。

【问题讨论】:

    标签: python ipython-notebook


    【解决方案1】:

    只需在所需位置添加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()
    

    【讨论】:

    【解决方案2】:

    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()
    

    【讨论】:

    猜你喜欢
    • 2014-02-17
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 2012-05-26
    • 2017-01-08
    相关资源
    最近更新 更多