Aller au contenu

Matplotlib

Objectifs de la section

2-7 Bibliothèque du langage qui permettent de manipuler des graphiques

Temps requis

60 minutes


Matplotlib est une bibliothèque Python qui permet la génération de graphiques. Travailler directement avec Matplotlibpeut s'avérer complexe, c'est pourquoi nous allons utiliser le module pyplot qui facilite plusieurs manipulations lorsque c'est opportun.

Créer un graphique simple

Commençons par créer un graphique qui affiche la fonction cosinus sur l'intervalle \([0, 4\pi]\).

Affichage de la fonction cosinus
import matplotlib.pyplot as plt
import numpy as np

# Échantillonne avec 200 points afin d'obtenir un effet lisse
x = np.linspace(0, 4*np.pi, 200)
y = np.cos(x)

# Trace le graphique
graphe, ax = plt.subplots()
ax.plot(x, y)

# Ouvre la fenêtre d'affichage
plt.show()

Tracer de la fonction cosinus

La fonction plot trace un graphique en liant tous les points par des lignes. Quant à la fonction scatter, elle permet de tracer des nuages de points, donc mettre un marqueur à chaque coordonnée plutôt que de tracer des lignes entre les coordonnées.

Documentation officielle de pyplot

Affichage de la fonction cosinus
import matplotlib.pyplot as plt
import numpy as np

# Échantillonne avec 30 points afin de distinguer correctement les coordonnées
x = np.linspace(0, 4*np.pi, 30)
y = np.cos(x)

# Trace le graphique
graphe, ax = plt.subplots()
ax.scatter(x, y)

# Ouvre la fenêtre d'affichage
plt.show()

Tracé de la fonction cosinus

Les fonctions plot et scatter retournent un tuple composé d'un objet Figure (que nous n'aurons pas à manipuler) et une collection d'objets Axis. Un objet Axis correspond aux données d'un graphique que l'on trace. On peut manipuler Axis directement lorsqu'on ne travaille que sur un seul graphique.

Mettre en forme un graphique

Il est possible de mettre en forme tous les éléments du graphique. La figure ci-dessous illustre les différents éléments sur le graphique.

Éléments d'un graphique, tiré de la documentation de Matplotlib

Titre du graphique

La mise en forme du titre du graphique se fait avec la fonction set_title appelée sur l'objet Axis. En paramètre on peut lui indiquer le titre à utiliser (sous forme de chaîne de caractères) et deux paramètres optionnels, l'un pour les couleurs et l'autre pour la localisation.

Affichage du titre d'un graphique
import matplotlib.pyplot as plt

# Crée l'espace pour afficher 3 graphiques côte à côte
graphe, ax = plt.subplots(1, 3)

# Graphique de gauche
ax[0].set_title("Titre aligné à gauche", loc="left")

# Graphique du centre
ax[1].set_title("Titre aligné centré (défaut)", loc="center")

# Graphique de droite
ax[2].set_title("Titre aligné à droite", loc="right")

plt.show()

Configuration pour l'affichage des titres

Titre des axes

La mise en forme des axes se fait avec les fonctions set_xlabel et set_ylabel. Ces fonctions acceptent le nom à donner à l'axe des abscisses (x) ou des ordonnées (y).

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 4*np.pi, 200)
y = np.cos(x)

graphe, ax = plt.subplots()
ax.plot(x, y)
ax.set_xlabel("Titre axe des abscisses")
ax.set_ylabel("Titre axe des ordonnées")

Affichage des titres des axes

Étendu des axes

Pour changer l'étendu des axes, il faut utiliser les fonctions set_xlimet set_ylim. Chacune de ces fonctions accepte deux nombres : la plus petite valeur de l'axe et la plus grande. Lorsqu'elles ne sont pas appelées, mathplotlib assigne des valeurs limites automatiquement.

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 4*np.pi, 200)
y = np.cos(x)

graphe, ax = plt.subplots()
ax.plot(x, y)
ax.set_xlim(-5, 15)
ax.set_ylim(-1.5, 1.5)

Affichage des titres des axes

Graduation des axes

Les axes sont gradués avec deux systèmes : les marques principales (major tick) et les marques secondaires (minor tick). Pour chacune des marques, il y a aussi un formateur pour déterminer comment les étiquettes de graduation sont affichées. Pour manipuler les graduations, il faut accéder aux informations de l'axe avec les propriétés xaxis ou yaxis de l'Axe du graphique.

Fonctions pour manipuler les graduations et l'affichage
Élément graphique Fonction
Graduation principale de l'axe des x ax.xaxis.set_major_locator
Graduation secondaire de l'axe des x ax.xaxis.set_minor_locator
Graduation principale de l'axe des y ax.yaxis.set_major_locator
Graduation secondaire de l'axe des y ax.yaxis.set_minor_locator
Formateur de la graduation principale de l'axe des x ax.xaxis.set_major_formatter
Formateur de la graduation secondaire de l'axe des x ax.xaxis.set_minor_formatter
Formateur de la graduation principale de l'axe des y ax.yaxis.set_major_formatter
Formateur de la graduation secondaire de l'axe des y ax.yaxis.set_minor_formatter

Changer les marques de graduations

Chaque fonction accepte un paramètre, un MultipleLocator avec le multiple de la graduation à utiliser.

Importer MultipleLocator

Pour utiliser MultipleLocator il faut ajouter l'instruction d'importation from matplotlib.ticker import MultipleLocator

Modification de la graduation des axes
import matplotlib.pyplot as plt
import numpy as np

# Ajouter cette directive d'importation 
from matplotlib.ticker import MultipleLocator

x = np.linspace(0, 4*np.pi, 200)
y = np.cos(x)

graphe, ax = plt.subplots()
ax.plot(x, y)

# Graduation de l'axe des abscisses par bond de 5, avec des marques secondaire
# par bond de 1
ax.xaxis.set_major_locator(MultipleLocator(5))
ax.xaxis.set_minor_locator(MultipleLocator(1))

# Graduation de l'axe des ordonnées par bond de 0.5 avec des marques secondaires
# par bond de 0.25
ax.yaxis.set_major_locator(MultipleLocator(0.5))
ax.yaxis.set_minor_locator(MultipleLocator(0.25))

plt.show()

Affichage des graduations des axes

Modification de la graduation des axes
import matplotlib.pyplot as plt
import numpy as np

# Ajouter cette directive d'importation 
from matplotlib.ticker import MultipleLocator

x = np.linspace(0, 4*np.pi, 200)
y = np.cos(x)

graphe, ax = plt.subplots()
ax.plot(x, y)

# Graduation de l'axe des abscisses par bond de pi, avec des marques secondaire
# par bond de pi/4
ax.xaxis.set_major_locator(MultipleLocator(np.pi))
ax.xaxis.set_minor_locator(MultipleLocator(np.pi / 4))

plt.show()

Affichage des graduations des axes

Pour modifier le formatage des champs, trois options sont disponibles :

  • Remplacer le séparateur de décimal point par la virgule (uniquement pour l'affichage);
  • Formater pour un affichage en pourcentage;
  • Changer le nombre de décimales affichées.
Utiliser la virgule comme séparateur de décimales

Pour modifier le séparateur de décimales, il faut modifier la langue locale que Python utilise. Contrairement aux autres paramètres, cette modification s'applique pour tous les graphiques faits après l'exécution de la ligne de code.

Utiliser la virgule comme séparateur de décimal
# Ajouter cette instruction d'importation
import locale

# À placer n'importe où AVANT d'afficher le graphique
locale.setlocale(locale.LC_NUMERIC, "fr_CA")
plt.rcParams['axes.formatter.use_locale'] = True
Formater des données en pourcentage

Pour mettre des données en pourcentage, il faut utiliser un objet de type PercentFormatter. Il accepte un paramètre optionnel : le dénominateur utilisé pour calculer le pourcentage (soit la valeur qui correspond à 100%). Si le paramètre est omis, les valeurs sont utilisées comme des pourcentages.

Il faut importer le PercentFormatter avec l'instruction from matplotlib.ticker import PercentFormatter.

Changement des étiquettes des axes
import matplotlib.pyplot as plt
import numpy as np

# À importer pour utiliser le PercentFormatter
from matplotlib.ticker import PercentFormatter

x = np.linspace(0, 4*np.pi, 200)
y = np.cos(x)

graphe, ax = plt.subplots(2, 2)

ax[0, 0].plot(x, y)
ax[0, 0].yaxis.set_major_formatter(PercentFormatter())
ax[0, 0].set_title("Pourcentage par défaut")

ax[0, 1].plot(x, y)
ax[0, 1].yaxis.set_major_formatter(PercentFormatter(decimals=1))
ax[0, 1].set_title("Pourcentage avec une décimale")

ax[1, 0].plot(x, y)
ax[1, 0].yaxis.set_major_formatter(PercentFormatter(1))
ax[1, 0].set_title("Pourcentage sur 1")

ax[1, 1].plot(x, y)
ax[1, 1].yaxis.set_major_formatter(PercentFormatter(5))
ax[1, 1].set_title("Pourcentage sur 5")

plt.show()

Changement des étiquettes des axes pour des pourcentages

Changer le nombre de décimales affichées

Pour changer le nombre de décimales, il faut passer à la fonction de formatage une chaîne de formatage, comme celle d'une f-string. La variable affichée (la graduation d'axe) s'appelle toujours x.

Formattage du nombre de décimales affichées
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 4*np.pi, 200)
y = np.cos(x)

graphe, ax = plt.subplots()
ax.plot(x, y)
# Formatte pour afficher 2 décimales sur l'axe des abscisses
ax.xaxis.set_major_formatter("{x:.2f}")
# Formatte pour afficher 3 décimales sur l'axe des ordonnées
ax.yaxis.set_major_formatter("{x:.3f}")

plt.show()

Changement des étiquettes des axes afficher 3 décimales

En savoir plus

Toutes les méthodes de formattage disponibles sont présentées sur cette page de la documentation.

Grille

Pour afficher la grille du graphique, il faut utiliser la fonction grid sur l'axe.

Paramètres de la fonction grid

Paramètre Type de valeur Valeur par défaut Description
visible booléen None Indique s'il faut afficher la grille, donc toujours mettre sa valeur à True.
which chaîne de caractères major La valeur major pour afficher la grille seulement pour les graduations principales, minor pour afficher la grille seulement pour les graduations secondaires et bothpour afficher les graduations principales et secondaires.

Affichage des graduations
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import MultipleLocator

x = np.linspace(0, 4*np.pi, 200)
y = np.cos(x)

graphe, ax = plt.subplots(1, 3)
ax[0].plot(x, y)
ax[0].xaxis.set_major_locator(MultipleLocator(np.pi))
ax[0].xaxis.set_minor_locator(MultipleLocator(np.pi / 4))
ax[0].yaxis.set_major_locator(MultipleLocator(0.5))
ax[0].yaxis.set_minor_locator(MultipleLocator(0.1))
ax[0].set_title("Graduations principales")

# Grille des graduations majeures
ax[0].xaxis.grid(visible=True, which="major")
ax[0].yaxis.grid(visible=True, which="major")

# ...
# Affichage similaire pour ax[1]
ax[1].set_title("Graduations secondaires")

# Grille des graduations mineures
ax[1].xaxis.grid(visible=True, which="minor")
ax[1].yaxis.grid(visible=True, which="minor")

# ...
# Affichage similaire pour ax[2]
ax[2].set_title("Graduations principales et secondaires")

# Grille des graduations mineures et majeures
ax[2].xaxis.grid(visible=True, which="both")
ax[2].yaxis.grid(visible=True, which="both")

plt.show()

Affichage des grilles

Styler les graphiques 😎

Plusieurs options de personnalisation des graphiques existent afin de les rendre visuellement plus intéressant ou d'y ajouter des détails.

Marqueurs

Tel que vu au début, utiliser scatter plutôt que plot permet de tracer un nuage de point. On peut changer les marqueurs utilisés. La page de la documentation présente toutes les options de personnalisation des marqueurs. Voici deux images tirées de la documentation qui présente les principaux marqueurs. On modifie les marqueurs avec le paramètre marker qui existe pour les fonctions scatter et plot. Dans le cas de la fonction plot, les marqueurs sont affichés en plus de lignes.

Pour contrôler la taille des marqueurs, on utilise le paramètre s dans la fonction scatter et le paramètre markersize dans la fonction plot. Attention, les deux paramètres, même s'ils ont le même effet, ne travaillent pas avec la même échelle. Les valeurs utilisées avec scatter doivent être beaucoup plus élevées.

Changement de marqueurs avec scatter
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 4*np.pi, 30)
y = np.cos(x)

graphe, ax = plt.subplots(1, 2)
ax[0].scatter(x, y, marker="x")
ax[1].scatter(x, y, marker="s", s=100)

plt.show()

Changement des marqueurs d'un graphique

Changement de marqueurs avec plot
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 4*np.pi, 30)
y = np.cos(x)

graphe, ax = plt.subplots(1, 2)
ax[0].plot(x, y, marker="x")
ax[1].plot(x, y, marker="x", markersize=20)

plt.show()

Changement des marqueurs d'un graphique

Lignes

Pour les lignes, il existe 4 styles de base. Il est possible, avec une syntaxe plus avancée, de décrire le style de la ligne à tracer. Vous trouverez ces détails sur cette page de la documentation. On indique le style dans le paramètre linestyle. On peut modifier la largeur de la ligne avec le paramètre linewidth.

Styles de ligne

Style de ligne Chaîne de caractère
Continue - (valeur par défaut)
Tirets --
Pointillée :
Alternance continue, pointillée -.

Modification de la forme de la ligne
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 4*np.pi, 200)
y = np.cos(x)

graphe, ax = plt.subplots(1, 3)
ax[0].plot(x, y, linestyle=":")
ax[1].plot(x, y, linestyle="--")
ax[2].plot(x, y, linestyle="--", linewidth=5)

plt.show()

Changement des lignes d'un graphique

Mettre en forme la grille

La fonction grid accepte aussi des paramètres linestyleet linewidth pour modifier son affichage.

Couleurs

Pour modifier la couleur d'un élément, il faut utiliser le paramètre color qui existe pour les fonctions scatter, plot et grid. La liste de toutes les couleurs supportées est la suivante. Pour la référence de l'image ou plus de couleur, consulter la documentation officielle.

Liste des couleurs disponibles par leur nom
Modifier la couleur d'un élément
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 4*np.pi, 30)
y = np.cos(x)

graphe, ax = plt.subplots(1, 2)
ax[0].plot(x, y, color="green")
ax[1].scatter(x, y, color="red")

Changement de couleur des éléments d'un graphique

Diagrammes statistiques

Diagrammes à barres

La fonction bar permet de créer un diagramme à barres. Les deux premiers paramètres sont respectivement :

  • Les catégories sur l'axe des x (sous forme de liste ou de tableau).
  • Les valeurs associées à chaque catégorie (liste des hauteurs des barres).

Il est possible encore une fois de personnaliser le diagramme en modifiant la couleur, l'épaisseur des bordures, les étiquettes et bien d'autres éléments.

Production d'un diagramme à barres
import matplotlib.pyplot as plt

notes = []

fig, ax = plt.subplots()
ax.bar(pays, population, color="skyblue", edgecolor="black")

ax.set_title("Population de quelques pays (en millions)")
ax.set_xlabel("Pays")
ax.set_ylabel("Population (millions)")

plt.show()

Diagramme à barres

Histogramme

Pour créer un histogramme, il faut utiliser la fonction hist. La fonction trace un histogramme automatiquement à partir des valeurs d'une série.

Paramètres de la fonction hist

Paramètre Type de valeur Valeur par défaut Description
x Series Aucune La série pour laquelle tracer un histogramme
bins nombre ou liste aucune Si un nombre est indiqué, alors l'histogramme formera ce nombre de catégories. Si une liste est indiquée, alors l'histogramme formera des catégories en utilisant les valeurs de la liste comme limite. Les intervalles ainsi formés sont fermés à gauche et ouverts à droite. La première et la dernière valeur doivent être indiquées.
density booléen False Affiche la fonction de densité empirique.
histtype chaîne de caractères "bar" Change le type d'histogramme : barres (bar), barres empilées (barstacked), escalier (step), escalier rempli (stepfilled).

Production d'un histogramme
import matplotlib.pyplot as plt
from matplotlib.ticker import PercentFormatter

# 30 notes
notes = [89.0, 74.0, 54.0, 71.0, 82.0, 75.0, 78.0, 55.0, 91.0, 59.0, 75.0, 81.0, 54.0, 66.0, 55.0, 
    99.0, 85.0, 69.0, 90.0, 88.0, 90.0, 63.0, 97.0, 100, 48.0, 69.0, 42.0, 95.0, 44.0, 70.0]

fig, ax = plt.subplots()
# En utilisant la règle de la racine, on devrait former 5 classes
ax.hist(notes, color="goldenrod", edgecolor="darkgoldenrod", bins=5)

ax.set_title("Notes d'élève à une évaluation")
ax.set_xlabel("Note (%)")
ax.xaxis.set_major_formatter(PercentFormatter(100))
ax.set_ylabel("Fréquence")

plt.show()

Production d'un histogramme
import matplotlib.pyplot as plt
from matplotlib.ticker import PercentFormatter

# 30 notes
notes = [89.0, 74.0, 54.0, 71.0, 82.0, 75.0, 78.0, 55.0, 91.0, 59.0, 75.0, 81.0, 54.0, 66.0, 55.0, 
    99.0, 85.0, 69.0, 90.0, 88.0, 90.0, 63.0, 97.0, 100, 48.0, 69.0, 42.0, 95.0, 44.0, 70.0]

fig, ax = plt.subplots()
# On forme, de façon arbitraire, des classes aux multiples de 10% entre 40 et 100%
ax.hist(notes, bins=range(40, 101, 10), color="goldenrod", edgecolor="darkgoldenrod")

ax.set_title("Note d'élèves à une évaluation")
ax.set_xlabel("Note (%)")
ax.xaxis.set_major_formatter(PercentFormatter(100))
ax.set_ylabel("Fréquence")

plt.show()

Diagrammes circulaires

La fonction pie permet de créer un diagramme circulaire (aussi appelé pointe de tarte au Québec ou gruyère chez nos cousins français). Les deux premiers paramètres sont respectivement :

  • Les catégories, exprimées sous forme de liste.
  • Les valeurs associées à chaque catégorie.

Il est possible encore une fois de personnaliser le diagramme. Notez dans l'exemple ci-bas comment on peut faire afficher les valeurs sous forme de pourcentages automatiques.

Production d'un diagramme circulaire
import matplotlib.pyplot as plt

# Répartition des préférences de boisson
boissons = ["Café", "Thé", "Jus", "Soda", "Eau"]
reponses = [80, 9, 29, 33, 75]  # Réponses des répondants

fig, ax = plt.subplots()
ax.pie(reponses, labels=boissons, autopct='%1.1f%%', colors=["brown", "green", "orange", "red", "blue"], startangle=90)

ax.set_title("Préférences de boisson dans un sondage")
plt.show()

Diagramme circulaire

Scatter avec tailles variables (à venir)

Travailler avec plusieurs séries de données

Lorsqu'on veut afficher plusieurs séries de données, on rappelle la fonction d'affichage sur le même objet d'Axe. Les séries vont alors se superposer.

Superposer deux séries de données
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 4 * np.pi, 200)
serie_1 = np.cos(x)
serie_2 = np.sin(x)

graphe, ax = plt.subplots()
ax.plot(x, serie_1, color="darkblue")
ax.plot(x, serie_2, color="darkred")

plt.show()

Empilage de deux séries de donnée (cos et sin)

Nuages de points et courbes

Il est possible de superposer un nuage de points (scatter) et une courbe (plot) dans un même graphique.

Ajouter une légende

Pour ajouter une légende, on précise l'étiquette de la légende pour chaque série de données avec le paramètre label. Ensuite, il suffit d'appeler la fonction legend sur l'objet Axis pour que celle-ci s'affiche. La fonction legend accepte un paramètre loc pour indiquer sa localisation dans le graphique. Les valeurs possibles sont : best (par défaut), upper right, upper left, lower left, lower right, right, center left, center right, lower center, upper center et center.

Superposer deux séries de données
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 4 * np.pi, 200)
serie_1 = np.cos(x)
serie_2 = np.sin(x)

graphe, ax = plt.subplots()
ax.plot(x, serie_1, color="darkblue", legend="cos(x)")
ax.plot(x, serie_2, color="darkred", legende="sin(x)")
ax.legend(loc="upper right")

plt.show()

Empilage de deux séries de donnée (cos et sin)

Plus de personnalisation

La page de la documentation vous offre une foule de paramètres pour personnaliser l'affichage des légendes.

Travailler avec les sous-graphiques

La fonction subplots permet de générer un espace dans lequel on peut tracer un graphique. Il est aussi possible de l'utiliser pour créer plusieurs espaces dans une même fenêtre. Pour ce faire, on doit lui indiquer deux paramètres nrows, le nombre de lignes et ncols, le nombre de colonnes. Lorsque la figure générée comporte plus qu'un espace, le contenu de ax est un tableau. S'il n'y a qu'une ligne ou qu'une colonne, alors c'est un tableau unidimensionnel. S'il y a plusieurs lignes et colonnes, alors c'est un tableau multidimensionnel.

Deux grahpiques cote à cote
Deux grahpiques empilés
Grille de quatre grahpiques

Chaque élément du tableau ax est un objet Axis et peut être utilisé comme tel.

Ajouter les incertitudes

La fonction errorbar permet de tracer les barres d'erreur sur un graphique. Il existe différentes façons de tracer les barres d'erreurs. Pour préciser l'erreur sur l'axe des abscisses, on utilise le paramètre xerr et pour l'axe des ordonnées yerr. Les deux paramètres fonctionnent de la même façon, c'est simplement l'endroit où est tracée la barre d'erreur qui diffère.

Il faut toujours utiliser les paramètres suivants pour avoir l'affichage souhaité : fmt = "none" et capsize=5.

Erreur constante

Si tous les points ont une erreur constante et symétrique, on peut indiquer ce nombre comme valeur d'erreur.

import matplotlib.pyplot as plt
import numpy as np

t = [0, 0.5, 1, 1.5, 2, 2.5, 3]
y = [10.32, 5.41, 0.51, -4.39, -9.29, -14.20, -19.10]

graphe, ax = plt.subplots()
ax.scatter(t, y)
ax.errorbar(t, y, xerr=0.1, fmt="none", capsize=5)

plt.show()

Affichage de barres d'erreur constante pour les abscisses

Erreur par point - symétrique

Si l'erreur est symétrique, mais diffère pour chaque point, on passe une liste de valeurs à xerr ou yerr.

import matplotlib.pyplot as plt
import numpy as np

t = [0, 0.5, 1, 1.5, 2, 2.5, 3]
y = [10.32, 5.41, 0.51, -4.39, -9.29, -14.20, -19.10]

graphe, ax = plt.subplots()
ax.scatter(t, y)

# Calcul 20% de chaque valeur de y
erreurs_relatives = np.abs(np.array(y) * 0.2)
ax.errorbar(t, y, yerr=erreurs_relatives, fmt="none", capsize=5)

plt.show()

Affichage de barres d'erreur relatives de 20% pour les ordonnées

Erreur par point - non symétrique

Si l'erreur n'est pas symétrique, on doit passer une liste qui contient elle-même deux listes : une pour les erreurs négatives et une pour les erreurs positives. Il est important que toutes les valeurs soient positives. Autrement dit, un point 3 qui aurait une incertitude le faisant varier entre 4 et 1 aurait comme valeur d'erreur 1 et 2 (le 2 est automatiquement enlevé du 3).

import matplotlib.pyplot as plt
import numpy as np

t = [0, 0.5, 1, 1.5, 2, 2.5, 3]
y = [10.32, 5.41, 0.51, -4.39, -9.29, -14.20, -19.10]

graphe, ax = plt.subplots()
ax.scatter(t, y)

erreurs_y_pos = [1] * 7
erreurs_y_neg = [2] * 7
erreurs_y = [erreurs_y_neg, erreurs_y_pos]

ax.errorbar(t, y, yerr=erreurs_y, fmt="none", capsize=5)

Affichage de barres d'erreur asymétriques ordonnées

Enregistrer un fichier

Pour enregistrer un fichier, il faut appeler savefig sur la variable graphe (le premier élément retourné par subplots). Cette fonction accepte un paramètre : le chemin où enregistre le graphique.

Enregistrement d'un graphique sous forme d'image
1
2
3
4
5
6
7
8
9
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 4 * np.pi, 200)
y = np.cos(x)

graphe, ax = plt.subplots()
ax.plot(x, y)
graphe.savefig("images/cosinus.png")