Ich verwende matplotlib der FuncAnimation Funktion zum Zurücksetzen ein Segment eines großen Datensatzes zu animieren:Wie matplotlib Animation ohne erneute laufende Skript
fig = plt.figure(figsize=(15, 11.5))
ax = fig.add_subplot(111, aspect='equal', autoscale_on=False,
xlim=(x1,x2), ylim=(y1, y2))
data,=ax.plot([],[],'o')
def init():
data.set_data([],[])
return data
def animate(t):
global x_pos,y_pos
data.set_data(x_pos[t],y_pos[t])
return data
ani=animation.FuncAnimation(fig,animate,frames=duration,interval=20,
init_func=init,blit=True)
plt.show()
Wenn ich meinen Code von Grund laufen funktioniert dies sehr gut. Da das Laden und Vorverarbeiten eines großen Datasets jedoch einige Minuten in Anspruch nimmt, möchte ich in der Lage sein, nur einen Teil meines Codes zum Testen und Animieren auszuführen.
Wenn ich meine Animation schließe und versuche, sie erneut auszuführen, bleibt mir nur eine leere Zahl übrig - es werden keine Punkte gezeichnet und die animate() Funktion wird nie aufgerufen (ich habe dies mit einer print-Anweisung getestet).
Ich habe versucht, die Handlung Clearing und die Figur:
plt.clf()
fig.close()
plt.clear(figure)
und eine andere Figur Zahl versucht, aber die Ergebnisse sind die gleichen.
Wie kann ich die Animation löschen, sodass ich sie erneut ausführen kann, ohne mein gesamtes Skript erneut auszuführen?