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

时间:2014-04-23 14:18:11

标签: 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()

1 个答案:

答案 0 :(得分:4)

所以问题来自于[n,X,V]是一个没有set_data方法的列表。据我所知,没有简单的方法以您描述的方式“更新”直方图,而无需手动重新排序和组织基础Patches对象。

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

此:

[n,X, V].set_data(stat)// problem here!!!!!!!
plt.draw()

变为:

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

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