Matplotlib est une puissante bibliothèque Python pour créer des visualisations. Enregistrer les graphiques sous forme de fichiers image est une tâche courante, mais le comportement par défaut d’affichage du graphique avant l’enregistrement peut être inefficace. Cet article montre comment enregistrer efficacement les graphiques Matplotlib directement dans des fichiers image sans l’étape d’affichage intermédiaire.
Table des matières
- Utiliser
savefig()
pour enregistrer les graphiques - Utiliser
imsave()
pour enregistrer les tableaux d’images
Utiliser savefig()
pour enregistrer les graphiques
La méthode savefig()
est l’option la plus polyvalente pour enregistrer les graphiques Matplotlib. Elle offre un contrôle sur le format de fichier, la résolution et la taille de la figure. Pour éviter l’affichage du graphique, appelez savefig()
*avant* toute commande qui afficherait le graphique (comme plt.show()
). N’oubliez pas de fermer la figure à l’aide de plt.close()
pour libérer de la mémoire, en particulier lorsque vous travaillez avec de nombreux graphiques.
import matplotlib.pyplot as plt
import numpy as np
# Données d'exemple
x = np.linspace(0, 10, 100)
y = np.sin(x)
# Création du graphique
plt.plot(x, y)
plt.xlabel("Axe X")
plt.ylabel("Axe Y")
plt.title("Onde sinusoïdale")
# Enregistrer la figure SANS l'afficher
plt.savefig("sine_wave.png", dpi=300, bbox_inches='tight') # dpi contrôle la résolution, bbox_inches assure que tous les éléments sont inclus
plt.close()
Ce code enregistre le graphique sous le nom sine_wave.png
à 300 DPI. L’argument bbox_inches='tight'
garantit que l’intégralité du graphique, y compris les étiquettes et les titres, est capturé dans l’image enregistrée. Vous pouvez facilement modifier le format de fichier (par exemple, « .pdf », « .svg », « .jpg »). Consultez la documentation Matplotlib pour une liste complète des formats pris en charge.
Utiliser imsave()
pour enregistrer les tableaux d’images
Pour enregistrer directement les tableaux d’images, imsave()
offre une approche plus concise. Ceci est particulièrement utile si vous avez déjà généré des données d’image sous forme de tableau NumPy, éliminant ainsi le besoin de créer un objet figure Matplotlib.
import matplotlib.pyplot as plt
import numpy as np
# Créer un tableau d'image d'exemple (échelle de gris)
image_array = np.random.rand(256, 256)
# Enregistrer le tableau d'image dans un fichier
plt.imsave("random_image.png", image_array, cmap='gray')
Ce code crée et enregistre une image en niveaux de gris de 256×256. L’argument cmap
spécifie la carte de couleurs ; ‘gray’ est utilisé ici. D’autres cartes de couleurs sont disponibles. imsave()
est efficace car il contourne la gestion des figures.
En résumé, savefig()
et imsave()
offrent des moyens efficaces d’enregistrer les sorties Matplotlib sans les afficher. Le meilleur choix dépend de savoir si vous travaillez avec une figure complète ou un tableau d’images brut. Prioriser savefig()
avant plt.show()
et utiliser plt.close()
améliore l’efficacité, surtout lors de la génération de nombreuses images.