我正在尝试在Jupyter笔记本中制作每秒钟更新一次的情节。现在,我只有一个简单的代码正在运行:
%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)
更新了我每秒创建的图表。但是,最后,还有一个额外的图表副本:
为什么这样做?我怎么能让这件事发生呢?提前谢谢。
答案 0 :(得分:4)
设置inline
后端,以便在每个单元格完成执行后,将显示在单元格中创建的任何matplotlib图。
您正在使用display
功能显示您的图形,然后内联后端会自动再次显示该图形。
阻止此操作的最简单方法是在单元格代码的末尾添加plt.close()
。
答案 1 :(得分:1)