Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
ws1415:beispiel_zu_videos_mit_matplotlib [2015/02/05 17:38] stefanborn angelegt |
ws1415:beispiel_zu_videos_mit_matplotlib [2016/05/10 14:46] (aktuell) |
||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
um das in Daten bereits vorhandene Bild zu erzeugen. | um das in Daten bereits vorhandene Bild zu erzeugen. | ||
- | Durch ''matplotlib.use("Agg")'' | + | Durch ''matplotlib.use("Agg")'' wird dafür gesorgt, dass nicht auf dem Bildschirm |
+ | gezeichnet wird, sondern alle Graphiken als Einträge für eine ''png''-Datei erzeugt | ||
+ | werden. Diese werden durch ''grab_frame'' an den ''writer'' weitergereicht, der | ||
+ | daraus eine (komprimierte) Video-Datei macht. | ||
+ | |||
<code python> | <code python> | ||
Zeile 39: | Zeile 44: | ||
</code> | </code> | ||
+ | |||
+ | Die Struktur ''with'' wurde noch nicht erklärt. Sie wird benutzt, um beispielsweise eine Datei zu erzeugen und in dem Block, der nach dem Doppelpunkt kommt zu verwenden. Ist der Block vorbei, wird die Datei automatisch geschlossen; man nennt das einen *Kontextmanager*. Stattdessen könnte ihr aber auch die Datei (oder was immer es ist) von Hand öffnen und schließen. Im Beispiel: | ||
+ | |||
+ | <code python> | ||
+ | writer.setup(fig, "writer_test.mp4", 100) | ||
+ | |||
+ | for i in range(50): | ||
+ | x0 += 0.1 * np.random.randn() | ||
+ | y0 += 0.1 * np.random.randn() | ||
+ | l.set_data(x0, y0) | ||
+ | writer.grab_frame() | ||
+ | |||
+ | writer.finish() | ||
+ | </code> | ||
+ |