Enregistrer le tracé dans un fichier image au lieu de l'afficher avec Matplotlib
Je suis en train d'écrire un script simple et rapide pour générer des graphiques à la volée. J'utilise le code ci-dessous (issu de la documentation de [Matplotlib][1]) comme point de départ :
from pylab import figure, axes, pie, title, show
# Make a square figure and axes
figure(1, figsize=(6, 6))
ax = axes([0.1, 0.1, 0.8, 0.8])
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
fracs = [15, 30, 45, 10]
explode = (0, 0.05, 0, 0)
pie(fracs, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True)
title('Raining Hogs and Dogs', bbox={'facecolor': '0.8', 'pad': 5})
show() # Actually, don't show, just save to foo.png
Je ne souhaite pas afficher le tracé sur une interface graphique, mais plutôt l'enregistrer dans un fichier (disons foo.png), afin de pouvoir l'utiliser, par exemple, dans des scripts batch. Comment puis-je faire cela ?
1049
3
Bien que la question ait reçu une réponse, j’aimerais ajouter quelques conseils utiles pour l’utilisation de [matplotlib.pyplot.savefig][1]. Le format du fichier peut être spécifié par l'extension :
Cela donnera respectivement une sortie rasterisée ou vectorisée, qui peuvent toutes deux être utiles. De plus, vous trouverez que
pylab
laisse un espace généreux, souvent indésirable, autour de l'image. Supprimez-le avec :[1] : https://matplotlib.org/api/_as_gen/matplotlib.pyplot.savefig.html#matplotlib.pyplot.savefig
La solution est la suivante :
Si vous n’aimez pas le concept de la figure "actuelle", faites-le :