使用matplotlib.pylab在for循环中更新直方图

use*_*990 4 python matplotlib histogram

我正在尝试更新for直方图数据。但我不知道该怎么做 我尝试使用set_data,但无法正常工作。这是代码:

plt.ion()
ax=plt.subplot(111)
[n,X, V]=ax.hist(range(MAX_X),bins=33,normed=True)

....

alternative=defaultdict(list)
...



for z in range(0,max(alternative)):
stat=zeros(33,int)
for i in range(len(alternative[z])):
    stat[alternative[z][i]]+=1

[n,X, V].set_data(stat)// problem here!!!!!!!
plt.draw()
Run Code Online (Sandbox Code Playgroud)

eba*_*arr 6

因此,问题出在以下事实:[n,X,V]没有set_data方法的列表。据我所知,没有一种简单的方法可以按照您描述的方式“更新”直方图,而无需手动重新排序和组织基础Patches对象。

您也可以清除每次重新绘制的轴:

这个:

[n,X, V].set_data(stat)// problem here!!!!!!!
plt.draw()
Run Code Online (Sandbox Code Playgroud)

变成:

ax.cla()
[n,X, V]=ax.hist(stat,bins=33,normed=True)
plt.draw()
Run Code Online (Sandbox Code Playgroud)

假设这stat是您要直方图的数组。