使用matplotlib.pylab在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()

所以问题来自于[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是一个要对其进行直方图处理的数组。

最新更新