matplotlib
ma moduł animation
do zrobienia właśnie tego. Jednak przykłady podane na stronie nie będą działać tak jak w notatniku; musisz zrobić kilka poprawek, aby to działało.
Oto przykład poniższej strony zmodyfikowanej do pracy w notatniku (zmiana w pogrubiona).
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
Należy pamiętać, że animacja w notebooku jest wykonany za pomocą filmu i że trzeba mieć zainstalowany ffmpeg i matplotlib skonfigurowany tak, aby go używać.
Czy mógłbyś też dodać sensowną wartość x? Próbowałem twojego przykładu z prostym zakresem (100) i numpy.arange (0, 2 * pi, 0.01), ale żadna nie tworzy ładnego wyjścia. Wydaje się również, że brakuje niektórych importów do uruchomienia tego kodu, tak jak jest –
Ta uwaga jest trochę lat później: ** aby uniknąć migotania ** ustaw 'clear_output (True)' (IPython 2.0.0) –
Dzięki @eldad! Powinienem to jeszcze raz zaktualizować :) –