CodeGym /Cours /Python SELF FR /Sauvegarder des graphiques comme images pour les rapports...

Sauvegarder des graphiques comme images pour les rapports

Python SELF FR
Niveau 42 , Leçon 1
Disponible

1. Méthodes pour sauvegarder des graphiques

Aujourd'hui, on ne va pas juste créer de jolis graphiques mais aussi les transformer en superbes images que tu peux utiliser dans tes rapports, présentations ou même tes albums perso en mode: "Regarde ce que j'ai fait !". Qui sait, peut-être que ton graphique deviendra viral sur les réseaux sociaux et tu auras enfin ton moment de gloire !

Comme dans une bonne émission culinaire où on choisit une recette pour commencer, on va jeter un coup d'œil aux différents formats de fichiers dans lesquels on peut sauvegarder les graphiques. Chaque format a ses particularités, et comprendre ces nuances t'aidera à choisir le "plat" parfait pour ton "menu". Voici quelques options :

  • PNG (Portable Network Graphics): un des formats les plus populaires pour les graphiques web. Il est compressé sans perte de qualité, gère la transparence et est bien supporté par la majorité des applications.
  • PDF (Portable Document Format): parfait pour l'intégration dans des documents. C'est un format vectoriel, donc l'image reste nette même en zoomant.
  • SVG (Scalable Vector Graphics): un autre format vectoriel, idéal pour le web. Il supporte l’interactivité et les animations.
  • JPEG (Joint Photographic Experts Group): habituellement utilisé pour les photos, mais avec une compression "lossy", ce qui peut ne pas convenir pour les graphiques avec du texte.

Maintenant qu'on sait ce qu'on a comme options, passons à la sauvegarde des graphiques avec la fonction savefig() de la bibliothèque Matplotlib.

Sauvegarder des graphiques avec savefig()

Matplotlib rend le processus de sauvegarde de graphiques presque indolore, comme une mise à jour d’OS sur ton téléphone (en supposant que tout se passe bien). Voyons comment faire.

Python

import matplotlib.pyplot as plt

# Disons qu'on a un graphique simple
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.plot(x, y, label='Nombres premiers')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Graphique linéaire des nombres premiers')
plt.legend()

# Sauvegarde du graphique dans un fichier
plt.savefig('primes.png')

Ce code crée un fichier primes.png dans le répertoire courant. Et voilà ! Pas besoin d'apprendre des incantations ou de prier les dieux du digital. Tu remplaces juste plt.show() par plt.savefig('chemin/nom_du_fichier') et c'est réglé !

2. Configurer les paramètres de sauvegarde

Bien sûr, sauvegarder un graphique, c'est bien, mais on veut qu'il soit magnifique ! Comme le dit un vieux proverbe : "Si un graphique est de mauvaise qualité, personne ne le remarquera". Ou un truc du genre...

Configurer la qualité et la résolution de l'image

Pour créer des images de haute qualité, tu peux configurer le paramètre dpi (dots per inch), qui définit la densité des pixels dans l'image. Plus la valeur est élevée, plus l'image est détaillée. Pour le web, 72 dpi suffisent, mais pour l'impression, 300 dpi ou plus sont recommandés.

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 25, 30]

plt.plot(x, y)

# Sauvegarde du graphique en haute résolution
plt.savefig("high_quality_plot.png", dpi=300)
plt.show()

Ici, dpi=300 améliore la qualité de l'image, la rendant plus nette, ce qui est particulièrement utile pour les rapports et impressions.

Sauvegarder sans bordures et marges supplémentaires

Par défaut, Matplotlib ajoute des marges autour du graphique, ce qui n'est pas toujours pratique pour l'intégration dans un rapport. Pour sauvegarder une image sans marges, utilise le paramètre bbox_inches="tight".

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [5, 10, 15, 20, 25]

plt.plot(x, y)

# Sauvegarde du graphique sans marges
plt.savefig("plot_no_borders.png", bbox_inches="tight")
plt.show()

Le paramètre bbox_inches="tight" enlève les marges inutiles autour du graphique, produisant une image plus compacte.

Définir les dimensions du graphique avant la sauvegarde

Parfois, il faut sauvegarder un graphique avec des dimensions spécifiques (par exemple, pour des présentations ou publications web). Grâce à figure(figsize=(largeur, hauteur)), tu peux définir la taille du graphique en pouces.

Python

import matplotlib.pyplot as plt

# Définir les dimensions du graphique
plt.figure(figsize=(10, 5))  # 10 pouces de large et 5 de haut

x = [1, 2, 3, 4, 5]
y = [5, 10, 15, 20, 25]

plt.plot(x, y)
plt.title("Graphique avec taille définie")

# Sauvegarde du graphique avec dimensions spécifiques
plt.savefig("custom_size_plot.png")
plt.show()

Dans cet exemple, le graphique est sauvegardé avec une taille de 10x5 pouces. Tu peux ajuster les dimensions en fonction des exigences du rapport ou de la présentation.

Options supplémentaires pour savefig()

  • transparent=True: sauvegarde l'image avec un fond transparent, idéal pour une insertion sur des fonds colorés ou transparents.
  • pad_inches: Ajoute des marges supplémentaires autour du graphique. Utilisé avec bbox_inches.
  • format: spécifie le format du fichier de sauvegarde : pdf, png, jpg, ...

Si le paramètre format n'est pas défini, la méthode savefig() essayera de le déterminer en fonction du nom du fichier.

Python

# Sauvegarde du graphique avec paramètres avancés
plt.savefig('primes_high_res', dpi=300, pad_inches='tight', format='png', transparent=True)

Maintenant ton graphique sera si net que tout le monde qui le verra dira : "Wow, tu sais vraiment ce que tu fais !"

1
Mission
Python SELF FR, niveau 42, leçon 1
Bloqué
Sauvegarde de base d'un graphique
Sauvegarde de base d'un graphique
2
Mission
Python SELF FR, niveau 42, leçon 1
Bloqué
Réglage de la résolution de l'image
Réglage de la résolution de l'image
3
Mission
Python SELF FR, niveau 42, leçon 1
Bloqué
Enregistrement d'un graphique avec des dimensions spécifiques
Enregistrement d'un graphique avec des dimensions spécifiques
4
Mission
Python SELF FR, niveau 42, leçon 1
Bloqué
Sauvegarde de plusieurs formats
Sauvegarde de plusieurs formats
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION