Maison >développement back-end >Tutoriel Python >Python peut-il créer des graphiques animés ?
ImageMagick
est un ensemble d'outils et un package de développement puissants, stables et open source qui peuvent être utilisés pour lire, écrire et traiter des fichiers image dans plus de 200 formats de base, y compris des formats tels au format PNG, JPEG, GIF, HEIC, TIFF, DPX, EXR, WebP, Postscript, PDF et SVG. En utilisant ImageMagick, vous pouvez générer dynamiquement des images en fonction des besoins des applications Web. Vous pouvez également effectuer des opérations telles que modifier la taille, faire pivoter, affiner, soustraire des couleurs ou ajouter des effets spéciaux à une image (ou un groupe d'images), et les résultats de l'opération sont affichés dans le même format ou enregistrés dans d'autres formats, l'opération des images peut se faire via la ligne de commande ou via la programmation C/C++, Perl, Java, PHP, Python ou Ruby. L'objectif principal d'ImageMagic est la performance, la réduction des bogues et la fourniture d'API et d'ABI stables.
Les fonctions d'ImageMagick sont généralement utilisées via la ligne de commande, mais peuvent également être utilisées par programme. La programmation peut choisir d'appeler via ces interfaces : G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), ImageMagickObject (COM+), Magick++ (C++), JMagick (Java), JuliaIO (Julia), L - Magick (Lisp), Lua (LuaJIT), NMagick (Neko/haXe), Magick.NET (.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand pour PHP (PHP), IMagick (PHP), PythonMagick ( Python ), magick (R), RMagick (Ruby) ou TclMagick (Tcl/TK).
Téléchargement Windows
Adresse :
http://www.lfd.uci.edu/~gohlke/pythonlibs/#pythonmagick
Téléchargez le fichier whl "PythonMagick" correspondant à la version du système d'exploitation et à la version de Python, puis installez-le dans CMD en utilisant la méthode "pip" + chemin + nom de fichier complet whl. Par exemple :
pip install C:UsersStudentDesktopPythonMagick-0.9.12-cp35-none-win_amd64.whl
ou téléchargez via anaconda
Recommandations associées : "python Tutoriel vidéo》
Exemple
import sys import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation fig, ax = plt.subplots() fig.set_tight_layout(True) # 询问图形在屏幕上的大小和DPI(每英寸点数) # 注意当把图形保存为文件时,需要为此单独再提供一个DPI print('fig size: {0} DPI, size in inches {1}'.format( fig.get_dpi(), fig.get_size_inches())) # 绘制一个保持不变(不会被重新绘制)的散点图以及初始直线 x = np.arange(0, 20, 0.1) ax.scatter(x, x + np.random.normal(0, 3.0, len(x))) line, = ax.plot(x, x - 5, 'r-', linewidth=2) def update(i): label = 'timestep {0}'.format(i) print(label) # 更新直线和轴(用一个新X轴标签) # 以元组形式返回这一帧需要重新绘制的物体 line.set_ydata(x - 5 + i) ax.set_xlabel(label) return line, ax if __name__ == '__main__': # 会为每一帧调用Update函数 # 这里FunAnimation设置一个10帧动画,每帧间隔200ms anim = FuncAnimation(fig, update, frames=np.arange(0, 10), interval=200) if len(sys.argv) > 1 and sys.argv[1] == 'save': anim.save('line.gif', dpi=80, writer='imagemagick') else: # Plt.show()会一直循环动画 plt.show()
Il y a deux points à noter : Les points de dispersion dans le graphique ne seront pas bouger; ce qui bouge est une ligne droite. Le titre de l'axe X change à chaque image.
Si vous souhaitez passer à un thème plus cool, vous pouvez utiliser la bibliothèque Seaborn, ajoutez simplement :
import seaborn
Vous obtiendrez alors le GIF suivant :
Un petit rappel : bien que le GIF ici ne comporte que 10 images et que le contenu graphique soit très simple, chaque image fait tout de même environ 160 000 images. Étant donné que les animations GIF n'utilisent pas de compression multi-images, les images GIF avec des images plus longues deviennent plus grandes. Minimiser le nombre d'images et rendre chaque image plus petite (en ajustant la taille de la figure ou le DPI dans matplotlib) peut plus ou moins aider à atténuer ce problème.
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!