[PYTHON] Erstellen Sie mit matplotlib eine GIF-Animation aus einer Seriennummerndatei

** Was Sie tun können, indem Sie diesen Artikel lesen ** Matplotlib kann GIF-Animationen aus Seriennummern-Datendateien erstellen

Ich kann jetzt Videos mit gnuplot erstellen (Videos aus Seriennummerndaten mit gnuplot erstellen), aber ich möchte trotzdem Videos mit matplotlib erstellen können. !!

--Umgebung - macOS mojave 10.14.6 - Python 3.7.5

Lassen Sie uns zunächst die Sinuskurve als Übung animieren. Die grundlegende Methode zum Erstellen einer GIF-Animation wird im nächsten Artikel ausführlich beschrieben.

Hier ist eine Referenz für die Grundeinstellungen. Einfache Animation mit matplotlib (mp4, gif)

Die Zeichenmethode wird hier kurz geschrieben und ist leicht zu verstehen. Animation mit matplotlib erstellen

gif_anime.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig = plt.figure()
ax = fig.add_subplot(111)
#Liste zum Einfügen des Line2D-Objekts
ims = []

for i in range(10):
    x = np.array(range(60))
    Y  = np.sin(x/5 - i * 5)
    im = ax.plot(Y, color='blue')
    ims.append(im) #Fügen Sie jedes Einzelbild zu ims hinzu

#Animationsgenerierung
ani = animation.ArtistAnimation(fig, ims, interval=100, blit=True, repeat_delay=1000)

#sparen
ani.save("sample.gif", writer="pillow")

#Anzeige
plt.show()

Sie können eine GIF-Animation wie diese erstellen (wenn sie nicht funktioniert, klicken Sie darauf, um sie in einem anderen Fenster zu öffnen. Als ich es auf Qiita hochgeladen habe, hat es aufgehört, sich unendlich zu wiederholen, aber wenn ich es zur Hand mache, wird es sich unendlich wiederholen. sample.gif

Optionen wie interbal`` repeat_delay werden im nächsten Artikel ausführlich beschrieben. Erstellen Sie eine Graph (Matplotlib) -Animation mit Python (ArtistAnimation)

Als nächstes versuchen wir, ** "die Seriennummerndatei des Berechnungsergebnisses zu animieren" **, wie sie in der Forschungspräsentation verwendet wird. Es wäre einfach, wenn ich die zuvor erwähnte Animation zeichnen könnte. Sie müssen lediglich den for-Teil des obigen Codes ändern, um das Berechnungsergebnis zu lesen.

anime_gif2.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import matplotlib.cm as cm

fig = plt.figure()
ax = fig.add_subplot(111)
#Liste zum Einfügen des Line2D-Objekts
ims = []

#Achseneinstellungen usw.
ax.set_xscale('log')
ax.set_yscale('log')
ax.set_xlim(0.1, 10.0)
ax.set_ylim(1, 5000)

#Anzahl der Berechnungsergebnisdateien
filenum = 10
for i in range(filenum):
    r, sd = np.loadtxt("./data%01d.dat" % (i), comments='#', unpack=True) #Lesen Sie wiederholt von data00 bis data09
    im = ax.plot(r, sd, "-", color='blue', linewidth=1)
    ims.append(im) #Fügen Sie jedes Einzelbild zu ims hinzu

#Animationsgenerierung
ani = animation.ArtistAnimation(fig, ims, interval=500, blit=True, repeat_delay=100)

#sparen
ani.save("anime.gif", writer="pillow")

#Anzeige
plt.show()

sample_anime3.gif

In diesem Fall wird die Liste mit dem Namen im jedoch vor dem Zeichnen erstellt. Wenn die Anzahl der zu lesenden Dateien zunimmt und Sie eine 3D-Animation erstellen möchten, wird das Zeichnen schwierig. Daher möchte ich jeden Frame der Animation zeichnen.

anime_gif3.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation

fig = plt.figure()
ax = fig.add_subplot(111)

artists = []
im, = ax.plot([], [])

#Achseneinstellungen usw.
ax.set_xscale('log')
ax.set_yscale('log')
ax.set_xlim(0.1, 10.0)
ax.set_ylim(1, 5000)

#Anzahl der Berechnungsergebnisdateien
filenum = 10

#Rufen Sie diese Funktion wiederholt auf, um zu zeichnen
#Ich erhöhe mich bei jedem Anruf um 1
def update_anim(i):
    r, sd = np.loadtxt("./data%01d.dat" % (i), comments='#', unpack=True) #Lesen Sie wiederholt von data00 bis data09
    im.set_data(r, sd)
    return im,

ani = FuncAnimation(fig, update_anim, interval=500, blit=True, frames = filenum, repeat_delay=100)

#sparen
ani.save("anime.gif", writer="pillow")

#Anzeige
plt.show()

Referenz: Flexible Animationserstellung mit animation.FuncAnimation von matplotlib

Jetzt können Sie mit matplotlib wunderschöne Animationen zeichnen.

Recommended Posts

Erstellen Sie mit matplotlib eine GIF-Animation aus einer Seriennummerndatei
Erstellen Sie eine GIF-Animation mit Ordnerüberwachung
Einfache Animation mit matplotlib (mp4, gif)
Machen Sie mit matplotlib eine teilweise gezoomte Figur
Animation mit matplotlib
Animation mit matplotlib
Lesen Sie mit Python Zeile für Zeile aus der Datei
Erstellen Sie eine Kopie einer Google Drive-Datei aus Python
[Python] Ändern Sie den Namen der Bilddatei in eine Seriennummer
Greifen Sie über das Ausführungsskript mit einem relativen Pfad auf die Datei zu.
Visualisieren Sie den Hohlraumfluss mit matplotlib und speichern Sie ihn als GIF-Animation
Machen Sie eine Lotterie mit Python
Machen Sie ein Feuer mit kdeplot
So erstellen Sie einen Befehl zum Lesen der Einstellungsdatei mit Pyramide
Lesen Sie die Datei in Python mit einem relativen Pfad aus dem Programm
Holen Sie sich OCTA-Simulationsbedingungen aus einer Datei und speichern Sie sie mit Pandas
Erstellen Sie eine Plotanimation mit Python + Matplotlib
Python-Grafikhandbuch mit Matplotlib.
Machen Sie eine Santa-Kennung aus einem Santa-Bild
Lassen Sie uns eine GUI mit Python erstellen.
Machen Sie einen Sound mit Jupyter Notebook
Erstellen Sie eine Deb-Datei mit Docker
Zeichnen Sie mit matplotlib ein loses Diagramm
Machen wir einen Blockbruch mit wxPython
Python / Machen Sie ein Diktat aus einer Liste.
Erstellen Sie ein Empfehlungssystem mit Python
Erstellen Sie eine 1-MByte-Zufallszahlendatei
Machen Sie einen Filter mit einer Django-Vorlage
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Machen wir mit xCAT einen Spacon
Erstellen Sie mit PySide einen Modelliterator
Machen Sie eine schöne Grafik mit Plotly
Schreiben Sie ein gestapeltes Histogramm mit matplotlib
Erstellen Sie mit Django einen Datei-Uploader
2. Erstellen Sie mit Python einen Entscheidungsbaum von 0 und verstehen Sie ihn (2. Grundlagen des Python-Programms)
Extrahieren Sie mit Python Zeilen, die den Bedingungen entsprechen, aus einer Textdatei
Ich habe mir eine Möglichkeit ausgedacht, aus einem Foto ein 3D-Modell zu erstellen.
[Bash] Befehl zum zeilenweisen Schreiben von Dateien in die Seriennummer [One Liner (?)]
Machen Sie mit Python einen Entscheidungsbaum von 0 und verstehen Sie ihn (4. Datenstruktur)
Erstellen einer einfachen Power-Datei mit Python
Lassen Sie uns mit Python ein Shiritori-Spiel machen
Erstellen Sie einen Videoplayer mit PySimpleGUI + OpenCV
[Hinweis] Lesen Sie eine Datei aus einem anderen Verzeichnis
Erstellen Sie mit Python eine GIF-Animation für ASCII-Grafiken
Machen Sie einen seltenen Gacha-Simulator mit Flask
Erstellen Sie eine Notebook-Pipeline mit Kedro + Papermill
Erstellen Sie eine große Textdatei mit Shellscript
Machen Sie ein Zeichnungsquiz mit kivy + PyTorch
Lassen Sie uns mit Python langsam sprechen
Erstellen Sie einen Kaskadenklassifizierer mit Google Colaboratory
Lassen Sie uns mit PLY 1 eine einfache Sprache erstellen
VM mit YAML-Datei (KVM) erstellen
[Python] Lassen Sie uns matplotlib mit Japanisch kompatibel machen
Machen Sie eine Logikschaltung mit Perceptron (Multilayer Perceptron)
Machen Sie Ja Nein Popup mit Kivy
Erstellen Sie eine Deb-Datei aus einem Python-Paket
Importieren Sie Videos mit Seriennummer zusammen mit Aviutl
Machen Sie einen Waschtrocknungs-Timer mit Raspberry Pi
Erstellen Sie ein Webframework mit Python! (1)
Machen wir mit Pylearn 2 eine dreiäugige KI