为什么 Jupyter Notebook 在制作更新图时会创建重复图
Why is Jupyter Notebook creating duplicate plots when making updating plots
我正在尝试在 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)
每秒更新我创建的绘图。不过最后多了一份剧情:
为什么要这样做?我怎样才能避免这种情况发生?提前谢谢你。
设置 inline
后端,以便在每个单元格执行完毕后,将显示单元格中创建的任何 matplotlib 图。
您正在使用 display
函数显示一次图形,然后内联后端自动再次显示该图形。
防止这种情况的最简单方法是在单元格中的代码末尾添加 plt.close()
。
另一种选择是在行尾添加 ;
!我在使用 statsmodels
方法绘制时间序列 (statsmodels.graphics.tsaplot.plot_acf()
) 的自相关时遇到了同样的问题:
from statsmodels.graphics.tsaplots import plot_acf
plot_acf(daily_outflow["count"]);
我正在尝试在 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)
每秒更新我创建的绘图。不过最后多了一份剧情:
为什么要这样做?我怎样才能避免这种情况发生?提前谢谢你。
设置 inline
后端,以便在每个单元格执行完毕后,将显示单元格中创建的任何 matplotlib 图。
您正在使用 display
函数显示一次图形,然后内联后端自动再次显示该图形。
防止这种情况的最简单方法是在单元格中的代码末尾添加 plt.close()
。
另一种选择是在行尾添加 ;
!我在使用 statsmodels
方法绘制时间序列 (statsmodels.graphics.tsaplot.plot_acf()
) 的自相关时遇到了同样的问题:
from statsmodels.graphics.tsaplots import plot_acf
plot_acf(daily_outflow["count"]);