我想使用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()
我只想看到矩阵移动以观察它的演变。 如果您有任何想法,请告诉我(即使我有点缺乏经验)。 谢谢!
答案 0 :(得分:0)
您的代码无效的原因:您尚未定义mat
或modif
。
此外,您应该绘制轴(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()