matplotlib怎么动态画图?

有一个系列的数据,想用条形图表示,但是y是会变化的(x不变),想动态地画出这个图。不知道怎么处理?
matplotlib有animation模块,实现动态作图有两块方法:
一种是用animation.ArtistAnimation,这个可以实现,但是需要先把所有图一次画完传给函数。
另一种是用animation.FuncAnimation,这个官方给的例子是用plot函数做出来的图line,line有set_ydata方法可以改变做出来的线的数据,但是我想用bar函数,不知道怎么做?

另外,如果有我有100个数据,其中有10个需要画成红色的, 另外90个绿色的,怎么画?

谢谢。

阅读 15.7k
1 个回答

实现动态图的demo我有一个,不知道是不是你要的,不需要全部的数据,实时更新,实时显示。

import matplotlib.pyplot as plt
fig,ax=plt.subplots()
y1=[]
for i in range(50):
    y1.append(i)
    ax.cla()
    ax.bar(y1,label='test',height=y1,width=0.3)
    ax.legend()
    plt.pause(0.3)
#其中y1是数据的Y值,只要不停地更y1的数组内容,就可以0.3S刷新一次

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题