2017-01-24 2 views
0

Ich möchte FuncAnimation verwenden, um eine Matrix zu animieren, die sich entwickeln wird. Ich habe versucht, eine sehr einfache Matrix zu verwenden, bevor ich eine komplexe verwendet habe, aber es gelingt mir nicht, FuncAnimation mit der einfachen zu verwenden. Ich habe versucht, auf andere Beiträge zu schauen, aber ich kann sie nicht an das anpassen, was ich tun möchte. Hier ist, was ich versucht zu tun, aber es funktioniert nichtFuncAnimation mit einer Matrix

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() 

Ich möchte nur die Matrix gerne sehen, bewegen ihre Entwicklung zu sehen. Wenn Sie irgendwelche Ideen haben, lassen Sie es mich wissen (auch wenn ich ein wenig unerfahren bin). Danke!

Antwort

0

Der Grund, warum Ihr Code nicht funktioniert: Sie haben weder mat noch modif definiert. Sie sollten auch die Achsen (ax.matshow()) zeichnen, anstatt ein neues Diagramm zu erstellen (plt.matshow()). Folgendes sollte tun, was Sie wollen.

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() 
+0

Das scheint genau so zu funktionieren, wie ich es will. Vielen Dank für Ihre schnelle Antwort! – Fab

+0

In diesem Fall sollten Sie [die Antwort akzeptieren] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work). Sobald Sie mehr Reputationspunkte haben, können Sie auch Antworten aufstellen, die Ihrer Meinung nach geeignet sind. – ImportanceOfBeingErnest

Verwandte Themen