Maison  >  Article  >  développement back-end  >  Exemple d'animation de dessin simple Python via matplotlib

Exemple d'animation de dessin simple Python via matplotlib

小云云
小云云original
2017-12-14 10:42:193625parcourir

Matplotlib est une bibliothèque de traçage Python 2D qui produit des graphiques de qualité publication dans une variété de formats papier et dans un environnement interactif multiplateforme. Avec Matplotlib, les développeurs peuvent générer des tracés, des histogrammes, des spectres de puissance, des graphiques à barres, des tracés d'erreurs, des nuages ​​de points, etc. avec seulement quelques lignes de code. Cet article présente principalement un exemple simple d'animation de dessin Python via matplotlib, qui a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère que cela pourra aider tout le monde.

matplotlib prend en charge le dessin d'animation depuis la version 1.1.0. Pour une utilisation spécifique, veuillez vous référer au document d'aide officiel. Voici un exemple très basique :

"""
A simple example of an animated plot
"""
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
# First set up the figure, the axis, and the plot element we want to animate
fig = plt.figure()
# create our line object which will be modified in the animation
ax = plt.axes(xlim=(0, 2), ylim=(-2, 2))
# we simply plot an empty line: we'll add data to the line later
line, = ax.plot([], [], lw=2) 
# initialization function: plot the background of each frame
def init():
 line.set_data([], [])
 return line,
# animation function. This is called sequentially
# It takes a single parameter, the frame number i 
def animate(i):
 x = np.linspace(0, 2, 1000)
 y = np.sin(2 * np.pi * (x - 0.01 * i)) # update the data
 line.set_data(x, y)
 return line,
# Makes an animation by repeatedly calling a function func
# frames can be a generator, an iterable, or a number of frames.
# interval draws a new frame every interval milliseconds.
# blit=True means only re-draw the parts that have changed.
# 在这里设置一个200帧的动画,每帧之间间隔20毫秒
anim = animation.FuncAnimation(fig, animate, init_func=init,
        frames=200, interval=20, blit=True)
# save the animation as an mp4. This requires ffmpeg or mencoder to be
# installed. The extra_args ensure that the x264 codec is used, so that
# the video can be embedded in html5. You may need to adjust this for
# your system: for more information, see
# http://matplotlib.sourceforge.net/api/animation_api.html
anim.save('basic_animation.mp4', fps=30, extra_args=['-vcodec', 'libx264'])

plt.show() # plt.show() 会一直循环播放动画

Résultat :

Si vous souhaitez animer Pour enregistrer des fichiers vidéo au format mp4, vous devez d'abord installer FFmpeg. FFmpeg est un ensemble de programmes informatiques open source qui peuvent être utilisés pour enregistrer, convertir de l'audio et de la vidéo numériques et les convertir en flux. Utilisez une licence LGPL ou GPL. Il fournit une solution complète pour l'enregistrement, la conversion et le streaming audio et vidéo.

Téléchargez la version Windows ici : TéléchargezFFmpegforWindows, décompressez-la, puis ajoutez le répertoire bin au chemin de la variable d'environnement système. Par exemple : C:ProgramFilesffmpeg-3.2.2-win64-staticbin. Testez ensuite si la configuration est OK : entrez ffmpeg-version

Je pense que vous comprenez mieux matplotlib et que vous pouvez l'essayer.

Recommandations associées :

Méthode de définition de l'axe de coordonnées Python matplotlib

matplotlib dessine des images qui répondent aux exigences du papier

Explication détaillée du dessin à l'aide de matplotlib en python

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn