Inline-Animationen in Jupyter

9

Ich habe ein Python-Animationsskript (mit matplotlibs funcAnimation), das in Spyder läuft, aber nicht in Jupyter. Ich habe versucht, verschiedene Vorschläge wie das Hinzufügen von "% matplotlib inline" und das Ändern des Matplotlib-Backends zu "Qt4agg", alles ohne Erfolg. Ich habe auch versucht, einige Beispielanimationen (von Jupyter Tutorials) zu laufen, von denen keiner gearbeitet hat. Manchmal erhalte ich eine Fehlermeldung und manchmal erscheint das Diagramm, aber es wird nicht animiert. Übrigens, ich habe pyplot.plot () erhalten, um mit "% matplotlib inline" zu arbeiten.

Kennt jemand ein funktionierendes Jupyter-Notebook mit einem SIMPLE-Inline-Animationsbeispiel, das funcAnimation verwendet? Vielen Dank im Voraus für die Hilfe!

[Hinweis: Ich bin auf Windows 7]

    
Ari Herman 17.04.2017, 04:22
quelle

3 Antworten

16

Notebook-Backend

'Inline' bedeutet, dass die Diagramme als PNG-Grafiken angezeigt werden. Diese PNG-Bilder können nicht animiert werden . Während man im Prinzip eine Animation aufbauen könnte, indem man die PNG-Bilder sukzessive ersetzt, ist dies wahrscheinlich unerwünscht.

Eine Lösung besteht darin, das Notebook-Backend zu verwenden, das vollständig mit FuncAnimation kompatibel ist, da es die matplotlib-Figur selbst rendert:

%Vor%

jsanimation

Ab Matplotlib 2.1 können wir eine Animation mit JavaScript erstellen. Dies ist ähnlich der ani.to_html5() -Lösung, außer dass keine Video-Codecs benötigt werden.

%Vor%

Ein vollständiges Beispiel:

%Vor%

Alternativ können Sie die jsanimation als Standard für die Anzeige von Animationen verwenden,

%Vor%

Geben Sie am Ende einfach ani ein, um die Animation zu erhalten.

Siehe auch diese Antwort für einen vollständigen Überblick.

    
ImportanceOfBeingErnest 17.04.2017 07:45
quelle
2

In diesem Tutorial gibt es ein einfaches Beispiel: Ссылка

Um das obige Tutorial zusammenzufassen, brauchen Sie im Prinzip Folgendes:

%Vor%

Jedoch ...

Ich hatte große Schwierigkeiten, das zur Arbeit zu bringen. Im Wesentlichen bestand das Problem darin, dass der obige Code% ce_de% und der Code ffmpeg im Hintergrund verwendet, aber auf meinem Computer nicht korrekt konfiguriert waren. Die Lösung bestand darin, sie zu deinstallieren und sie mit der richtigen Konfiguration aus der Quelle wiederherzustellen. Weitere Details finden Sie in der Frage, die ich mit einer funktionierenden Antwort von Andrew Heusser dazu gestellt habe: Animationen in ipython (jupyter) notebook - ValueError: E / A-Vorgang bei geschlossener Datei

Versuchen Sie also zuerst die x264 -Lösung oben, und wenn es nicht funktioniert, versuchen Sie auch die Deinstallation / Neuerstellung von to_html5_video und ffmpeg .

    
Biggsy 11.07.2017 11:54
quelle
0

Hier ist die Antwort, die ich aus mehreren Quellen zusammengestellt habe, einschließlich der offiziellen Beispiele. Ich habe mit den neuesten Versionen von Jupyter und Python getestet.

  • Laden Sie FFmpeg ( Ссылка )
  • herunter
  • Installieren Sie FFmpeg und stellen Sie sicher, dass Sie die Umgebungsvariable aktualisieren ( Ссылка ) ).
  • Führen Sie dieses Skript in Jupyter unten aus. Die Variable imageList ist die einzige Sache, die Sie ändern müssen. Es ist eine Liste von Bildern (Ihre Eingabe).
%Vor%     
MosGeo 08.08.2017 16:49
quelle