matplotlib
hat ein animation
Modul genau das zu tun. Die auf der Website bereitgestellten Beispiele werden jedoch nicht wie in einem Notebook ausgeführt. Sie müssen ein paar Verbesserungen vornehmen, damit es funktioniert.
Hier ist das Beispiel der Seite unten geändert, um in einem Notebook zu arbeiten (Änderungen in fett).
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
from matplotlib import rc from IPython.display import HTML
fig, ax = plt.subplots()
xdata, ydata = [], []
ln, = plt.plot([], [], 'ro', animated=True)
def init():
ax.set_xlim(0, 2*np.pi)
ax.set_ylim(-1, 1)
return ln,
def update(frame):
xdata.append(frame)
ydata.append(np.sin(frame))
ln.set_data(xdata, ydata)
return ln,
ani = FuncAnimation(fig, update, frames=np.linspace(0, 2*np.pi, 128), init_func=init, blit=True) rc('animation', html='html5') ani # plt.show() # not needed anymore
Beachten Sie, dass die Animation in das Notebook über einen Film gemacht ist und Sie müssen ffmpeg installiert sein und konfiguriert matplotlib es zu benutzen.
Könnten Sie vielleicht auch einen vernünftigen x-Wert hinzufügen? Ich habe Ihr Beispiel mit einem einfachen Bereich (100) und numpy.arange (0, 2 * pi, 0.01) versucht, aber keiner von beiden erzeugt eine nette Ausgabe. Es scheint auch, dass Sie einige Importe fehlen, um diesen Code auszuführen, wie es ist –
Diese Bemerkung ist ein paar Jahre später: ** um das Flackern zu vermeiden ** set 'clear_output (True)' (IPython 2.0.0) –
Danke @eldad! Ich sollte dies noch einmal aktualisieren :) –