带矩阵的FuncAnimation

时间:2017-01-24 11:29:44

标签: python numpy animation matrix matplotlib

我想使用FuncAnimation来动画一个将演变的矩阵。在使用复杂的矩阵之前,我尝试使用一个非常简单的矩阵,但我没有设法使用简单的FuncAnimation。我试着查看其他帖子,但我不能让它们适应我想做的事情。这是我试图做的但它不起作用

from numpy import *
import matplotlib.pyplot as plt 
import matplotlib.animation as animation
M=array([[0,0,100,100,100,100,100,100,300,300,300,300,300,300,500,500,500,500,500,500,1000,1000,1000,1000] for i in range(0,20)]) 

def update(i):
M[7,i] =1000
M[19-i,10]=500
mat.set_array(modif(i,M))
return mat

fig, ax = plt.subplots()
matrice = plt.matshow(mat)
plt.colorbar(matrice)

ani = animation.FuncAnimation(fig, update, frames=19, interval=1500)
plt.show()

我只想看到矩阵移动以观察它的演变。 如果您有任何想法,请告诉我(即使我有点缺乏经验)。 谢谢!

1 个答案:

答案 0 :(得分:0)

您的代码无效的原因:您尚未定义matmodif。 此外,您应该绘制轴(ax.matshow()),而不是创建新的图(plt.matshow())。 以下应该做你想要的。

import numpy as np
import matplotlib.pyplot as plt 
import matplotlib.animation as animation

M=np.array([[0,0,100,100,100,100,100,100,300,300,300,300,300,300,500,500,500,500,500,500,1000,1000,1000,1000] for i in range(0,20)]) 

def update(i):
    M[7,i] = 1000
    M[19-i,10] = 500
    matrice.set_array(M)

fig, ax = plt.subplots()
matrice = ax.matshow(M)
plt.colorbar(matrice)

ani = animation.FuncAnimation(fig, update, frames=19, interval=500)
plt.show()