La visualisation des données est une compétence essentielle dans le domaine des sciences des données et de l’analyse statistique. Sans avoir la prétention de rivaliser les experts dans les domaines cités, pouvoir afficher et tracer des graphiques de vos données vous permet de les interpréter beaucoup plus facilement. Une représentation visuelle claire et concise des informations permet de mieux comprendre les modèles, les tendances et les relations cachées dans les données.
Pour réaliser toutes ces tâches, la librairie Matplotlib en Python est un outil puissant. Dans cet article nous allons explorer ensemble les bases de Matplotlib. Il s’adresse aux débutants mais également aux expérimentés qui souhaitent réviser leurs bases. Nous verrons comment créer des graphiques attrayants et informatifs.

chatgpt, le bouquin python, image présenter un ou deux cas simples
donner les possibilités de graphiques qu’on peut faire avec. Un article sera rédigé par type de graphique afin de pousser l’étude sur un cas concret.
Qu’est-ce que Matplotlib ?
Matplotlib est une librairie populaire pour la visualisation de données en Python. Elle offre une grande flexibilité et permet de créer une variété de graphiques, tels que des diagrammes en barres, des graphiques linéaires, des diagrammes circulaires, des nuages de points, etc. Matplotlib est conçu pour être facile à utiliser tout en offrant des fonctionnalités avancées pour les utilisateurs expérimentés.
Installation de Matplotlib
Pour commencer à utiliser Matplotlib, il est nécessaire de l’installer. Si vous utilisez Anaconda, vous pouvez simplement exécuter la commande « conda install matplotlib » dans votre terminal. Si vous utilisez un autre environnement de développement comme Spyder ou VSCode, la commande « pip install matplotlib » doit fonctionner correctement.
conda install matplotlib # si vous utilisez anaconda
pip install matplotlib # dans les autres cas
PythonLes bases de la visualisation avec Matplotlib
La toute première étape pour utiliser la librairie Matplotlib est de l’importer.
import matplotlib as mpl
import matplotlib.pyplot as plt
PythonVous retrouverez souvent l’import de la librairie Matplotlib renommé en « mpl ». Le module « pyplot », renommé « plt », permet une utilisation simple de la librairie. Les utilisateurs de Matlab se retrouveront dans la façon de faire. Une autre manière d’utilisation la librairie est la façon « orientée objet ».
Voici un exemple simple de tracé avec la librairie Matplotlib :
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,10,50)
y = x**2
plt.plot(x, y)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Fonction y = x²')
plt.show()
Python
Pour tracer une courbe, vous avez donc besoin d’un tableau de valeur à une dimension pour les abscisses (X) et idem pour les ordonnées (Y). Les valeurs sont crées ici grâce à la librairie Numpy qui est très utile pour tout ce qui est calcul numérique et matriciel. Je présente les fonctionnalités dans cet article.
Le tracé du graphique se fait via la commande « plot » avec la liste des valeurs de X et Y en arguments. Ensuite, les commandes « xlabel » et « ylabel » permettent d’insérer une légende sur les axes associés. La commande « title » pilote le titre du graphique. Enfin, la commande « show » permet d’afficher le graphique. Il faut savoir que toutes les actions précédentes se font en arrière plan. Le graphique n’est visible qu’avec la commande « show ».
Personnalisation des graphiques
L’étape suivante consiste à personnaliser vos graphiques. Nous allons découvrir quelques fonctions basiques. Pour aller plus loin, je vous conseille fortement de visiter le site officiel de la librairie donc voici le lien. Vous trouverez une mine d’or d’informations, des exemples et bien entendu le détail de chaque fonction.
La librairie Python Matplotlib permet donc une personnalisation des graphiques. Vous pourrez rajouter des légendes pour les courbes et les axes, modifier les couleurs et les styles de ligne, le type et la taille des marques, les limites des axes, etc … Afin de mieux comprendre, nous allons passer par un exemple :
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-5,5,50)
y = np.sin(x)
plt.plot(x, y, marker='o', linestyle='--', color='g', label='Sinus')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Graphique de la fonction sinus')
plt.legend()
plt.grid(True)
plt.show()
Python
Nous avons déjà vu les commandes « xlabel », « ylabel » et « title ». Vous avez dû apercevoir que des arguments ont été ajoutés dans la commande « plot ». Vous pouvez personnalisés vos graphiques via différents arguments dans la commande « plot ». L’argument « marker » permet de définir une forme spécifique pour chaque point de la courbe. Ensuite, « linestyle » permet de définir le style de ligne, ici des pointillés. Puis « color » détermine la couleur de la courbe. Enfin « label » permet d’identifier la courbe lorsque la légende est affichée. C’est bien ce qui a été fait via la commande « legend() ». Enfin, vous pouvez afficher ou non le quadrillage via la commande « grid(True) ».
Nous avons donc vu comment personnalisés une courbe via différents arguments. Nous allons voir maintenant chaque argument en détails.
Définition de la couleur de la courbe
Il existe différentes manières de définir la couleur d’une courbe avec Matplotlib. Vous pouvez soit utiliser un code couleur, soit le nom complet ou leur numéro RGB / Hexa. Voici plusieurs exemples vous illustrant les différentes méthodes. si vous ne spécifiez pas de couleur, Matplotlib choisira pour vous automatiquement.
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-5,5,50)
plt.plot(x, np.sin(x - 0), color='red', label="Rouge") # Nom de la couleur
plt.plot(x, np.sin(x - 1), color='g', label="Vert") # code rgbcmyk de la couleur
plt.plot(x, np.sin(x - 2), color='0.7', label="Niveau de gris") # niveau de gris entre 0 et 1
plt.plot(x, np.sin(x - 3), color='#00FFFF', label="Cyan") # Code Hexa de la couleur
plt.plot(x, np.sin(x - 4), color=(1.0,0.5,0.0), label="Orange") # Tuple RGB (entre 0. et 1.)
plt.plot(x, np.sin(x - 5), color='chartreuse', label="Chartreuse") #
plt.legend()
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
Python
Vous pouvez retrouver la liste de toutes les couleurs via ce lien. Voici la liste des principales couleurs.

Les différentes styles de tracé
Avec la libraire Matplotlib, vous pouvez également choisir le type de tracé que vous souhaitez entre un trait plein, des pointillés, un trait mixte, etc … Voici un exemple qui utilise les principaux styles de ligne.
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-5,5,50)
plt.plot(x, 0.5*x, linestyle='solid', label='solid') # trait plein
plt.plot(x, 0.5*x + 1, linestyle='dashed', label='dashed') # tirets
plt.plot(x, 0.5*x + 2, linestyle='dashdot', label='solid') # trait mixte
plt.plot(x, 0.5*x + 3, linestyle='dotted', label='dotted') # pointillés
plt.legend()
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
Python
De plus, ces styles peuvent être définis par des raccourcis si vous ne voulez pas écrire leur nom complet. Voici le même exemple que précédemment mais en utilisant les raccourcis pour les styles de ligne.
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-5,5,50)
plt.plot(x, 0.5*x + 4, linestyle='-', label='solid shorcut') # raccourci pour trait plein
plt.plot(x, 0.5*x + 5, linestyle='--', label='dashed shorcut') # raccourci pour tirets
plt.plot(x, 0.5*x + 6, linestyle='-.', label='dashdot shorcut') # raccourci pour trait mixte
plt.plot(x, 0.5*x + 7, linestyle=':', label='dotted shorcut') # raccourci pour pointillés
plt.legend()
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
PythonCombiner le code couleur avec le tracé
Afin de simplifier votre code, vous pouvez combiner le style de ligne avec la couleur via leurs raccourcis respectifs.
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-5,5,50)
plt.plot(x, 0.5*x + 4, '-g', label='solid green')
plt.plot(x, 0.5*x + 5, 'b--', label='dashed blue')
plt.plot(x, 0.5*x + 6, 'r-.', label='dashdot red')
plt.plot(x, 0.5*x + 7, ':c', label='dotted cyan')
plt.legend()
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
Python
Définir les limites d’axes
Ensuite, une fois que les courbes sont paramétrées comme vous le souhaitez, il est temps de définir les limites des axes. De base, Matplotlib gère plutôt bien les échelles sur les axes. Cependant, dans certains cas, vous aurez besoin de gérer spécifiquement les bornes. Ceci peut se faire via les commandes « .xlim() » et « .ylim() ».
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-5,5,50)
plt.plot(x, np.cos(x), '-g', label='cosinus')
plt.legend()
plt.xlabel("X")
plt.ylabel("Y")
plt.xlim(-2.,2.)
plt.ylim(-0.5,0.5)
plt.show()
Python
Dans l’exemple présenté, les commandes « xlim » et « ylim » permettent d’effectuer un zoom sur une zone définie par les bornes [-2.;2.] sur l’axe X et [-0.5;0.5] sur l’axe Y.
Pour piloter les axes, vous pouvez aussi passer par la commande « axis » qu permet de définir en une ligne les valeurs minimum et maximum sur chaque axe.
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-5,5,50)
plt.plot(x, np.cos(x), '-g', label='cosinus')
plt.legend()
plt.xlabel("X")
plt.ylabel("Y")
xmin, xmax = -2., 2.
ymin, ymax = -0.5, 0.5
plt.axis([xmin, xmax, ymin, ymax])
plt.show()
PythonLe résultat sera donc exactement le même que précédemment. Avec la commande « axis », vous pouvez aussi utiliser des mots clés comme « auto », « tight », « equal » ou « scaled » qui vont ajuster automatiquement les échelles. Les différents mots clés sont disponibles et expliqués dans la documentation dont voici le lien. Enfin, voici deux exemples pour que vous puissiez visualiser l’effet de ces mots clés.
# On reprend l'exemple précédent mais on change la manière de piloter les axes
plt.grid('True')
# Premier exemple avec le mot clé "equal"
plt.axis('equal')
plt.title("Graphique avec plt.axis('equal')")
# Second exemple avec le mot clé "tight"
plt.axis('tight')
plt.title("Graphique avec plt.axis('tight')")
Python
Personnalisation de la légende
Nous avons vu qu’il est possible d’afficher des légendes avec la commande « plt.legend() ». Pour chaque courbe, on peut mettre l’argument « label= » avec comme valeur le nom de la courbe. Le label sera réutilisé pour la légende.
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-5,5,50)
plt.plot(x, np.cos(x), '-g', label='cosinus')
plt.plot(x, np.sin(x), ':r', label='sinus')
plt.plot(x, np.tan(x), '-.b', label='tangente')
plt.title("Fonctions trigonométriques") # Titre du graphique
plt.xlabel("X") # Légende de l'axe X
plt.ylabel("Y") # Légende de l'axe Y
plt.grid('True') # Affichage de la grille
plt.axis('tight') # Option d'axe pour avoir un ajustement serré
plt.legend() # Affichage de la légende
plt.show()
PythonEnsuite, afin de personnaliser encore plus la légende, dans la commande « .legend() », vous pouvez rajouter les arguments suivants :
- frameon : par défaut, la valeur est « True ». Vous pouvez désactiver l’option pour enlever le cadre autour mais les éléments du graphique pourront gêner la lisibilité
- facecolor : par défaut « white », cet argument est inutile si « frameon » n’est pas activé. Cet argument permet de définir la couleur de fond du cadre de la légende.
- framealpha : l’argument alpha est souvent utilisé pour piloter la transparence d’un objet. C’est également le cas pour le cadre de la légende. Une valeur de 0 signifie que la légende est complètement transparente et une valeur de 1 signifie que la légende est complètement opaque. Cette option n’a aucun effet sur l’argument « frameon » est désactivé.
- loc : valeur par défaut = « best », cet argument permet de piloter la position de la légende sur votre graphique. Les valeurs disponibles sont les suivantes : ‘best’, ‘upper right’, ‘upper left’, ‘lower left’, ‘lower right’, ‘right’, ‘center left’, ‘center right’, ‘lower center’, ‘upper center’, ‘center’
- ncols : nombre de colonnes utilisé pour afficher la légende
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-5,5,50)
plt.plot(x, np.cos(x), '-g', label='cosinus')
plt.plot(x, np.sin(x), ':r', label='sinus')
plt.plot(x, np.tan(x), '-.b', label='tangente')
plt.title("Fonctions trigonométriques")
plt.xlabel("X")
plt.ylabel("Y")
plt.grid('True')
plt.axis('tight')
plt.legend(loc='lower center',facecolor="grey",frameon=True,ncols=3,
framealpha = 1.0)
plt.show()
Python
Je vous ai présenté les principaux arguments utiles mais il en existe encore d’autres pour peaufiner encore plus vos graphiques. Pour avoir la liste complète des arguments, voici le lien vers la documentation de Matplotlib.
Dans l’exemple précédent, la légende est affichée sur trois colonnes, complètement opaque avec un fond gris (c’est moche mais cela illustre bien l’exemple). De plus, la localisation de la légende est centrée en bas du graphique.
Les types de graphiques
Matplotlib offre une variété de graphiques que vous pouvez créer en fonction de vos besoins. Voici quelques exemples :
– Diagrammes en barres : Idéaux pour représenter des catégories et leurs valeurs associées.
– Graphiques linéaires : Utiles pour visualiser les tendances et les relations entre les données.
– Diagrammes circulaires : Parfaits pour montrer des proportions ou des pourcentages.
– Nuages de points : Idéaux pour représenter la corrélation entre deux variables.
– Graphiques en boîte : Utiles pour représenter la distribution et les valeurs aberrantes d’un ensemble de données.
Voici une représentation de chaque type de graphique cité. Les images sont issues de la documentation officielle (lien).

Matplotlib offre également des fonctionnalités avancées pour la création de sous-graphiques, la manipulation des axes, les graphiques en 3D, les cartes de chaleur, etc. Vous pouvez explorer davantage ces fonctionnalités en consultant la documentation officielle de Matplotlib.

Et pour finir sur la librairie Matplotlib
La librairie Matplotlib est un outil puissant pour la visualisation de données en Python. Que vous soyez un débutant cherchant à explorer les bases de la visualisation ou un utilisateur expérimenté souhaitant créer des graphiques personnalisés et avancés, Matplotlib vous offre une flexibilité et une facilité d’utilisation exceptionnelles. En utilisant les concepts de base présentés dans cet article, vous pourrez créer des graphiques attrayants et informatifs pour mieux comprendre vos données. N’oubliez pas d’explorer la documentation officielle de Matplotlib pour découvrir toutes les fonctionnalités qu’elle offre.
Nous avons vu ensemble la méthode utilisant la méthode « pyplot ». Cette méthode a l’avantage d’être simple à utiliser et à appliquer. Elle ressemble énormément à Matlab pour ceux qui utilisent ce logiciel. Nous verrons dans un autre article comment utiliser la librairie Matplotlib à la manière orientée objet. Cette méthode permet de mieux maîtriser la génération de graphique dans des programmes plus élaborés.
J’espère que vous aurez apprécié cet article et qu’il vous servira dans vos projets. N’hésitez pas à laisser un commentaire, j’y répondrai avec plaisir. A bientôt, Benjamin