2016-05-11 2 views
0

Wie der Titel fragt, frage ich mich, ob es möglich ist, eine Matplotlib ArtistAnimation anzuhalten. Ich weiß, dass es possible to pause when using FuncAnimation ist, aber ich bin nicht sicher, dass diese Methode auf eine ArtistAnimation angewendet werden kann.Anhalten einer Matplotlib ArtistAnimation

Ein Beispiel für einen Arbeits ArtistAnimation ohne Pausieren ist

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

fig, ax = plt.subplots() 
ax.set(xlim=(0, 2*np.pi), ylim=(-1, 1)) 

x = np.linspace(0, 2*np.pi, 100) 

ims = [] # Blank list that will contain all frames 
for frame in range(50): 
    line, = ax.plot(x, np.sin(x + 0.1*frame), color='k') 
    # Add new element to list with everything that changes between frames 
    ims.append([line]) 

anim = ArtistAnimation(fig, ims, interval=100) 

Antwort

0

Die folgende keine vollständige Lösung ist, aber vielleicht eine Möglichkeit, zu einem. Es erfordert IPython verwendet werden.

Mit anim wie in der Frage definiert, kann ich anim._stop() eingeben, um die Animation anzuhalten. Ich kann auch anim._step() nach Bedarf verwenden, um die nächsten Frames zu sehen.

Ich bin mir nicht sicher, ob es möglich ist, die Animation nach diesen Aufrufen wieder zu starten.