Tout savoir sur le Matplotlib
La visualisation de données, data visualization ou Data Viz, est l’une des composantes essentielles de la Data Analyse moderne. En représentant visuellement des informations complexes, elle permet de mettre en évidence des schémas, des tendances et des relations cachées au sein des données. Matplotlib se distingue comme l’un des outils les plus populaires en Data Viz.
Qu’est-ce que Matplotlib ?
Matplotlib est une bibliothèque de Data Visualization en Python, inspirée de Matlab et développée par John Hunter dans les années 2000. Le neurobiologiste cherchait un moyen de visualiser les signaux électriques du cerveau de patients épileptiques. En 2012, suite au décès de son créateur, de nombreux contributeurs ont alimenté ce projet open source.
Complète et populaire, elle permet de créer des visualisations statiques, animées et interactives. Elle est capable de générer des graphiques dans les formats les plus utilisés dont PDF, SVG, JPG, PNG, BMP et GIF. C’est un outil prisé par les utilisateurs de Python et de NumPy, souvent utilisé dans des serveurs d’applications web, des shells et des scripts Python.
Grâce aux API de Matplotlib, les développeurs peuvent intégrer des graphiques dans des applications d’interface graphique, ajoutant une dimension visuelle à leurs applications interactives.
Comment fonctionne Matplotlib ?
Matplotlib peut être utilisé de deux façons : via un développement orienté objet et via le module Pyplot.
Le développement orienté objet
Avec cette approche les figures et les axes sont créés de manière explicite. Puis les méthodes associées pour tracer des données et personnaliser les graphiques sont appelées.
import matplotlib.pyplot as plt
# étape de création de la figure et des axes
fig, ax = plt.subplots()
# étape du traçage des données
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
ax.plot(x, y, label=’Données’)
# Étape de personnalisation du graphique
ax.set_title(‘Exemple de tracé via le développement orienté objet’)
ax.set_xlabel(‘Axe X’)
ax.set_ylabel(‘Axe Y’)
ax.legend()
# Étape finale d’affichage du graphique
plt.show()
Le module Pyplot
Le module Pyplot de Matplotlib offre une interface similaire à celle de MATLAB. La création de graphiques est plus simple et plus concise.
import matplotlib.pyplot as plt
# étape de traçage de la data
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y, label=’Données’)
# étape d’ajout des titres et étiquettes
plt.title(‘Exemple de tracé via le module Pyplot’)
plt.xlabel(‘Axe X’)
plt.ylabel(‘Axe Y’)
plt.legend()
# étape finale d’affichage du graphique
plt.show()
Quels sont les principaux composants de Matplotlib ?
Matplotlib repose sur plusieurs composants clés facilitant la création de graphiques et de visualisations de grande qualité.
La figure
Il s’agit du conteneur de premier niveau pour tous les éléments ou artistes composant l’image graphique. Le moyen le plus simple pour en créer une nouvelle est le pyplot :
- pour créer une figure vide sans axes : fig = plt.figure() ;
- pour une figure avec un seul axe : fig, ax = plt.subplots() ;
- pour une figure avec une grille 2×2 d’axes fig, axs = plt.subplots(2, 2) ;
- pour une figure avec un axe à gauche et deux axes à droite : fig, axs = plt.subplot_mosaic([[‘left’, ‘right_top’], [‘left’, ‘right_bottom’]]).
Les artistes
Parmi les différents artistes qui composent le graphique, on retrouve la figure, les axes, les lignes, les textes, les légendes, le fond et la grille. Chacun peut être personnalisé en modifiant ses propriétés, par exemple la couleur, le style, la taille ou la position. Cela permet un contrôle total sur l’apparence et le contenu des graphiques.
Les axes
Un axe est un artiste attaché à une figure contenant un espace de traçage des données. Il comprend généralement deux objets Axis (ou trois dans le cas de la 3D) qui fournissent des repères ou ticks. Chaque axe possède :
- un titre, défini via set_title() ;
- une étiquette x, définie via set_xlabel() ;
- une étiquette y (définie via set_ylabel()).
Les axis
Ces objets définissent l’échelle et les limites du tracé. Ils génèrent des ticks sur l’axe et sont étiquetés par des ticklabels. Leur emplacement est déterminé avec l’objet Locator et les ticklabels sont formatées par un Formatter, grâce à l’interface set_xticks :
fig, axs = plt.subplots(2, 1, layout=’constrained’)
axs[0].plot(xdata, data 1)
axs[0].set_title(‘Automatic ticks’)
axs[1].plot(xdata, data1)
axs[1].set_xticks(np.arange(0, 100, 30), [‘zero’, ’30’, ‘sixty’, ’90’])
axs[1].set_yticks([-1.5, 0, 1.5]) # note that we don’t need to specify labels
axs[1].set_title(‘Manual ticks’)`
Les ticks
Ces repères permettent de spécifier les positions et les étiquettes des marques sur les axes. Les fonctions set_xticks et set_yticks permettent de définir les positions des repères sur les axes x et y. Par exemple : plt.xticks([1, 2, 3, 4, 5], [‘A’, ‘B’, ‘C’, ‘D’, ‘E’]).
Pour définir les étiquettes des repères sur les axes, on utilise set_xticklabels ou set_yticklabels.
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)
Pour tracer les données, on utilise plt.plot(x, y). Des repères personnalisés peuvent être définis avec : plt.xticks([0, np.pi, 2*np.pi], [‘0’, ‘$\pi$’, ‘2$\pi$’]).
Comment utiliser Matplotlib ?
Cette bibliothèque Python a pour objectif de « simplifier les tâches simples et de rendre possibles les choses compliquées ». En quelques lignes de code, il est donc possible de générer de nombreux types de visualisation. Le module matplotlib.pyplot fournit une interface semblable à MATLAB.
Importer une bibliothèque
Dans un premier temps, Matplotlib doit être importé dans le script Python à l’aide de l’instruction import matplotlib.pyplot as plt. L’import de la bibliothèque se lance, et l’alias plt lui est attribué par convention. Les différentes fonctions et constantes du module se nommeront avec l’alias suivi de leur nom, par exemple plt.figure().
Créer des figures et des axes
Une figure peut être créée en appelant la fonction plt.figure(). Pour créer des axes, on utilise la méthode add_subplot() de la figure ou la fonction plt.subplots().
Tracer des données
Une fois les figures et les axes créés, les différentes fonctions de traçage de Matplotlib vont représenter vos données. Par exemple, la fonction plot() permet de tracer des graphiques en ligne et la fonction scatter() des points individuels.
Personnalisation du graphique
Avec Matplotlib, il est possible de personnaliser complètement les graphiques pour améliorer leur aspect visuel. Vous pouvez ajouter par exemple des titres, des légendes, des étiquettes d’axe, des couleurs ou encore des styles de ligne.
Affichage et sauvegarde
Votre graphique enfin prêt, vous pouvez l’afficher à l’écran avec plt.show(). Vous pouvez également le sauvegarder avec plt.savefig() dans un fichier image PNG, JPG ou SVG.
Que peut-on créer avec Matplotlib ?
Matplotlib offre une grande variété de graphiques et de visualisations de données, ce qui en fait une bibliothèque polyvalente pour la représentation visuelle de divers types de données.
Des graphiques linéaires
Ils permettent de représenter des tendances ou des modèles au fil du temps.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y)
plt.show()
Des graphiques à barres
Il s’agit ici de comparer des catégories de données distinctes et de mettre en évidence leurs différences.
import matplotlib.pyplot as plt
categories = [‘A’, ‘B’, ‘C’, ‘D’]
values = [3, 12, 5, 18]
plt.bar(categories, values)
plt.show()
Des histogrammes
Il est possible de représenter la distribution des données numériques à l’aide d’histogrammes. Ils sont utiles pour comprendre la répartition des valeurs dans un dataset.
import matplotlib.pyplot as plt
import numpy as np
data = np.random.randn(1000)
plt.hist(data, bins=30)
plt.show()
Des nuages de points
Ils permettent d’identifier les relations et corrélations entre différentes variables.
import matplotlib.pyplot as plt
import numpy as np
x = np.random.rand(100)
y = np.random.rand(100)
plt.scatter(x, y)
plt.show()
Des graphiques 3D
Ils permettent de représenter des données tridimensionnelles de manière immersive et interactive. Par exemple, ici il s’agit d’un nuage de points en 3D :
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection=’3d’)
x = np.random.rand(100)
y = np.random.rand(100)
z = np.random.rand(100)
ax.scatter(x, y, z)
plt.show()
Pourquoi Matplotlib est-il essentiel en Intelligence Artificielle et en Data Science ?
Dans le domaine du machine learning, Matplotlib est une référence pour la Data Viz. Comme nous l’avons vu, elle permet de produire de nombreuses visualisations en plusieurs dimensions. Cette flexibilité permet d’explorer visuellement les modèles de données pour identifier les schémas et les tendances.
Les chercheurs en IA et les data scientists s’appuient énormément sur Matplotlib. La bibliothèque les aide à explorer visuellement les dataset et évaluer les performances des modèles d’IA. Ils peuvent transformer de larges ensembles de données complexes en visualisations claires. Cela leur permet également de mieux communiquer sur leurs travaux et résultats.
Quels sont les défis liés à Matplotlib ?
Matplotlib est une bibliothèque très vaste, avec plus de 70 000 lignes de code au total. Elle propose différentes interfaces et prend en charge divers backends pour le rendu des graphiques, ce qui peut être déroutant pour les novices.
L’une des difficultés est liée à la disponibilité de la documentation. Certaines des ressources étant obsolètes, elles peuvent prêter à confusion et générer des erreurs. Ainsi, certains exemples trouvés en ligne peuvent nécessiter jusqu’à 70 % de lignes de code en moins sur les versions les plus récentes.
Comment se former à Matplotlib ?
Matplotlib est une bibliothèque à la syntaxe lourde qui peut s’avérer complexe. Comme nous venons de le voir, son apprentissage en autodidacte est compromis par le manque de ressources fiables.
IA School propose des formations complètes dans le domaine de l’Intelligence Artificielle et de la Data Science. Ainsi, notre cursus post-bac Programme Grande École d’une durée de 5 ans, vous permet d’acquérir l’ensemble des compétences essentielles, y compris le langage de programmation Python, et ses bibliothèques, comme Numpy, Pandas ou Matplotlib.
Matplotlib se positionne comme l’une des bibliothèques de visualisation de données les plus populaires et les plus puissantes. Cet outil est essentiel dans le paysage de la science des données et de l’Intelligence Artificielle.