我是Matplotlib的新手,正在尝试创建包含numpy.random.randn()
生成的1,000,000个随机数的数组的动画直方图。第一帧是数组的100个第一元素的直方图。之后,我向先前的数组中添加了一个元素,并绘制了新的直方图。我想在清晰的白色背景上看到每个新帧,但实际上以前的帧从未消失(请参见gif)。我已经搜索了很长时间,但找不到任何解决方案。
请告诉我哪里出了问题以及如何正确执行?另外,每个新框架都有不同的颜色,如何使所有框架使用相同的颜色?
下面是代码:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from numpy.random import randn
import seaborn as sns
fig = plt.figure(figsize = (5,5))
ax1 = plt.axes(xlim = (-5,5))
line, = ax1.plot([],[])
x = randn(1000000)
def init():
plt.clf()
plt.cla()
return fig,ax1
def animate(i):
n = x[:i+99]
ax1 = sns.distplot(n,bins=21)
ax1.set_title("Seaborn distplot, n="+str(i+99))
return fig
ani = animation.FuncAnimation(fig,animate,init_func = init,interval = 100)
plt.show()
非常感谢。
将plt.cla()
移动到动画功能,并将其放置在轴元素上方。