[PYTHON] Faire une animation avec matplotlib

matplotlib est un module de dessin graphique de python, et vous pouvez également créer des animations. En d'autres termes, c'est une bonne idée que les frères aînés qui meurent s'ils ne regardent pas l'animation à minuit apprennent matplotlib.

Donc, comme un exemple très simple, écrivez du code qui décrit simplement les nombres aléatoires générés par numpy.

Cliquez ici pour le document officiel. http://matplotlib.org/api/animation_api.html

ArtistAnimation

Il existe deux types d'animations matplotlib, ArtistAnimation et FuncAnimation. ArtistAnimation prépare tous les graphiques à l'avance sous la forme d'un tableau et les lit un par un.

artistanimation.py


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

fig = plt.figure()

ims = []

for i in range(10):
        rand = np.random.randn(100)     #Générer 100 nombres aléatoires
        im = plt.plot(rand)             #Graphique des nombres aléatoires
        ims.append(im)                  #Ajouter un graphique au tableau ims

#Afficher 10 graphiques toutes les 100 ms
ani = animation.ArtistAnimation(fig, ims, interval=100)
plt.show()

artist.gif

C'était un peu comme une onde radio. Si vous voulez regarder un anime après avoir travaillé tard le soir, c'est une bonne idée de regarder ce genre de chose. Lors de l'enregistrement d'une vidéo au format GIF, à la fin

plt.show()

Partie de

ani.save("output.gif", writer="imagemagick")

Il est bon de réécrire. (Nécessite un package appelé imagemagick) Il semble qu'il peut sortir en MP4, mais je ne l'ai pas fait car c'est un peu gênant.

FuncAnimation

Cela ne passe pas le graphe préfini, mais exécute la fonction pour chaque image de l'animation. Utile si les données sont trop volumineuses ou potentiellement infinies.

funcanimation.py


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

fig = plt.figure()

def plot(data):
    plt.cla()                      #Effacer le graphique actuellement dessiné
    rand = np.random.randn(100)    #Générer 100 nombres aléatoires
    im = plt.plot(rand)            #Générer un graphique

ani = animation.FuncAnimation(fig, plot, interval=100)
plt.show()

func.gif

Comme cela crée dynamiquement un graphique, la plage sur l'axe vertical change à chaque fois en fonction du nombre aléatoire.

Lors de la sortie au format GIF, contrairement à l'animation d'artiste, la fin n'est pas spécifiée, donc

ani = animation.FuncAnimation(fig, plot, interval=100, frames=10)
ani.save("output.gif", writer="imagemagick")

Spécifiez le nombre d'images à l'avance sous la forme «frames = 10».

Recommended Posts

Faire une animation avec matplotlib
Animer plusieurs graphiques avec matplotlib
Japonais avec matplotlib
Animation avec matplotlib
histogramme avec matplotlib
Graphique 2 axes avec Matplotlib
Carte thermique par Python + matplotlib
Graphique de bande avec matplotlib
Apprenez avec Chemo Informatics Matplotlib
Dessin en temps réel avec matplotlib
Graphique 3D avec matplotlib
Ajustez les axes avec matplotlib
Graphique des données Excel avec matplotlib (1)
Essayez d'utiliser matplotlib avec PyCharm
Graphique des données Excel avec matplotlib (2)
Bar plot empilable avec matplotlib
Sélectionnez les couleurs en dégradé avec matplotlib
Créer une animation de tracé avec Python + Matplotlib
Manuel de graphisme Python avec Matplotlib.
Affichage des inférences et des résultats avec Tensorflow + matplotlib
Japaneseize Matplotlib avec Alpine en utilisant Docker
Dessinez le japonais avec matplotlib sur Ubuntu
Dessinez un graphique lâche avec matplotlib
Traçage de données polyvalent avec pandas + matplotlib
Animez plusieurs images fixes avec Python
Heatmap avec dendrogramme en Python + matplotlib
Réglage facile de la police japonaise avec matplotlib
Dessinez facilement des graphiques avec matplotlib
Couleur en continu avec le diagramme de dispersion matplotlib
Dessinez Riapnov Fractal avec Python, matplotlib
Quand matplotlib ne fonctionne pas avec python2.7
Effectuer un tracé de probabilité normale logarithmique avec Python, matplotlib
Animation facile avec matplotlib (mp4, gif)
Écrire un histogramme empilé avec matplotlib
Implémentez "Data Visualization Design # 2" avec matplotlib
Mémorandum Matplotlib
Comment titrer plusieurs figures avec matplotlib
[Python] Définissez la plage du graphique avec matplotlib
Ajustez l'espacement entre les chiffres avec Matplotlib
Alignez la taille de la barre de couleurs avec matplotlib
Galerie Matplotlib
Essayez de dessiner une distribution normale avec matplotlib
Mémo Matplotlib
Faire une figure partiellement zoomée avec matplotlib
Ecrire des graphiques SVG avec matplotlib avec heroku
Afficher le graphique japonais avec VS Code + matplotlib
Carte thermique pour la recherche de grille avec Matplotlib
Définissez la couleur des xticklabels individuellement avec matplotlib
Dessinez une étiquette d'axe hiérarchique avec matplotlib + pandas
[Python] Rendons matplotlib compatible avec le japonais
Afficher les marqueurs au-dessus de la bordure avec matplotlib
Alignez la barre de couleurs sur la figure avec matplotlib
[Mémo Jupyter Notebook] Afficher les kanji avec matplotlib
Dessinez un joli graphique circulaire avec matplotlib
Définissez les paramètres communs avec le sous-graphique de matplotlib
Créer un graphique avec des bordures supprimées avec matplotlib
Résumé de la grammaire souvent oubliée avec matplotlib
Visualisez les données d'infection corona à Tokyo avec matplotlib
Dessinez une surface plane avec un graphique 3D matplotlib
Les bases de Pandas pour les débutants ③ Créez un histogramme avec matplotlib