折腾了很多天的动画,终于比较明确的知道怎么进行更新了
简单解说:
更新原理
本代码用到的animation.FuncAnimation 主要是会根据传入的参数进行更新,至于具体怎么更新的,其实可以不用太关心,它可以接受传入的参数frame进行操作,但如果你的更新函数和frame无关,那就别管了(比如我这个代码中的random)
相关操作:
最重要的是创建画布fig之后的 ifg.add_axes 这创建了一个绘画的句柄,后面你对这个句柄的操作都可以被更新
上代码
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
##############
# plot init #
##############
#### test
fig = plt.figure()
def add_axes_inches(fig, rect):
w,h = fig.get_size_inches()
return fig.add_axes([rect[0]/w, rect[1]/h, rect[2]/w, rect[3]/h])
ax1 = fig.add_axes([0.1,0.1,0.8,0.8]) #获得绘制的句柄
#############
# Animation #
#############
def test(frames):
board = np.random.rand(100,100).round()
ax1.matshow(board,cmap=plt.cm.gray)
# plt.show()
def init():
ax1.set_title('area1')
ani = animation.FuncAnimation(fig,test,init_func=init,interval=150)
plt.show()