De documentatie is een beetje licht over de uitleg over het gebruik van FuncAnimation. Er zijn echter voorbeelden in de galerij en blogtutorials, zoals Jake Vanderplas's en Sam Dolan's PDF .
Dit voorbeeld uit de tutorial van Jake Vanderplas is misschien de "Hello World" ofmatplotlib-animatie:
from __future__ import division
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
def init():
return [line]
def animate(i, ax, line):
x = np.linspace(0, 2*np.pi, N) + i/(N*2)
ax.set_xlim(x.min(), x.max())
line.set_data(x, np.sin(x))
return [line]
N = 100
fig, ax = plt.subplots()
line, = ax.plot([], [])
ax.set_xlim(0, 2*np.pi)
ax.set_ylim(-1, 1)
ani = animation.FuncAnimation(
fig, animate, init_func=init, interval=0, frames=int(4*np.pi*N),
repeat=True, blit=True, fargs=[ax, line])
plt.show()
Verander verschillende waarden of regels code en kijk wat er gebeurt. Kijk wat er gebeurt als je return [line]
verandert naar iets anders. Als je deze voorbeelden bestudeert en speelt, kun je leren hoe de stukjes in elkaar passen.
Zodra u dit voorbeeld begrijpt, zou u het moeten kunnen aanpassen aan uw doel.
Als je problemen hebt, post dan je code en beschrijf welke foutmelding of wangedrag je ziet.
Enkele tips:
-
Omdat voor animatie het aanroepen van
line.set_data
. vereist is , ik denk niet dat je Panda'sdf.plot()
. kunt gebruiken . Ik weet zelfs niet zeker of het Pandas DataFrame hier nuttig is. Het is misschien beter om de gegevens in lijsten of NumPy-arrays te zuigen en deze door te geven aanline.set
zoals hierboven, zonder Panda's erbij te betrekken. -
Het openen van een verbinding met de database moet één keer gebeuren.
animate
wordt vaak gebeld. Het is dus beter omconn
. te definiëren enc
enquery
-- alles wat niet verandert bij elke aanroep omanimate
--buitenanimate
, en geef ze als argumenten terug aananimate
via defargs
parameter.