Wie ich meine Animationen mache - Ein simples Beispiel

Ich schreibe meine Animationen fast ausschließlich mit matplotlib und ffmpeg in jupyter lab. matplotlib generiert die einzelnen Frames und mit ffmpeg render ich die Videos. matplotlib hat zwar eigene Tools für Animationen matplotlob.animation, ich bevorzuge aber das Video aus den einzelnen Frames selbst zu rendern, da man mehr Einstellungen vornehmen kann. Ich nutze den 'Agg'-Modus, um zu vermeiden, dass mir die Plots in jupyter angezeigt werden.
Dann definiere ich alle Variablen, die sich während der Frames nicht ändern. Ich überlege mir vorher wie lang das Video sein soll, reche mir daraus die benötigten Frames aus und zerlege das Intervall, in dem die Animation spielt per np.linspace(a, b, frames). So läuft die Animation immer vollständig durch egal wieviele Frames das Video hat. bzw. wie langsam es sein soll.
Ich gehe nun durch alle Frames durch, erzeuge sie einzeln und speicher sie ab. (Achte darauf, dass der Ordner sin existiert) Mit plt.figure(figsize=(8, 4.5)) gebe ich das Verhältnis an und mit plt.savefig('sin/out_' + str(k) + '.png', dpi=100) setze ich über die DPI die Qualität des Bildes.
Mit %%system kann ich sofort Befehle der Kommandozeile verwenden. Um aus den einzelnen Frames ein Video zu rendern nutze ich ffmpeg. Ich gebe an, dass das Video 30 fps haben soll und das Format. Die Videos sind in diesem Format sehr klein und sind qualitativ vollkommen ausreichend für das Web.
Damit du das Video nicht jedesmal per Hand öffnen musst, kannst du das Video per HTML in jupyter einblenden lassen.
Viel Spaß beim Nachbauen!