python - 为什么 Jupyter Notebook 在制作更新图时会创建重复图

标签 python matplotlib ipython jupyter-notebook

我正在尝试在 Jupyter Notebook 中绘制每秒钟左右更新一次的图。现在,我只有一个可以正常工作的简单代码:

%matplotlib inline
import time
import pylab as plt
import numpy as np
from IPython import display

for i in range(10):
    plt.close()
    a = np.random.randint(100,size=100)
    b = np.random.randint(100,size=100)

    fig, ax = plt.subplots(2,1)
    ax[0].plot(a)
    ax[0].set_title('A')
    ax[1].plot(b)
    ax[1].set_title('B')

    display.clear_output(wait=True)
    display.display(plt.gcf())
    time.sleep(1.0)

它每秒更新我创建的绘图。然而,最后,有一个额外的情节副本:

enter image description here

为什么要这样做?我怎样才能避免这种情况发生?提前谢谢你。

最佳答案

设置inline 后端,以便在每个单元格执行完毕后,将显示单元格中创建的任何 matplotlib 图。

您使用 display 函数显示您的图形一次,然后内联后端自动再次显示该图形。

防止这种情况的最简单方法是在单元格中的代码末尾添加 plt.close()

关于python - 为什么 Jupyter Notebook 在制作更新图时会创建重复图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36685031/

相关文章:

python - 循环遍历所有行 Pandas 的替代方法

python - 使用 Py2exe (Python) 生成可执行文件时出现 Matplotlib 错误

Python 和西里尔字母表

python - 如何展平在 PySpark 中使用 zip 转换创建的元组

python - 使用 Google Compute Engine 上的应用程序默认凭据访问 Sheets API

Perl 的 Python 正则表达式等效项

python - matplotlib 分离散点图点并创建分割曲线

python - 统计抛硬币的结果

numpy - 使用 Python/iPython 的网络绘图错误

python - 将 python 装饰器应用于所有继承类