Matplotlib : Tout savoir sur la bibliothèque Python de Dataviz

-
7
 m de lecture
-
matplotlib

Matplotlib est une bibliothèque Python open source permettant de créer des visualisations de données. Découvrez tout ce que vous devez savoir : définition, fonctionnement, difficultés, formations...

La visualisation de données est une étape clé de l’analyse de données. Après avoir collecté, stocké et analysé des données, il est essentiel de transformer les résultats de ces analyses en rapports et en visualisations graphiques.

Pour cause, le cerveau humain comprend plus rapidement un diagramme qu’une succession de statistiques sous forme de tableau. La  » DataViz  » permet donc de partager les résultats d’une analyse avec les équipes non-techniques d’une entreprise, et notamment ses dirigeants.

Qu'est-ce que Matplotlib ?

Matplotlib est une bibliothèque Python open source, initialement développée par le neurobiologiste John Hunter en 2002. L’objectif était de visualiser les signaux électriques du cerveau de personnes épileptiques. Pour y parvenir, il souhaitait répliquer les fonctionnalités de création graphique de MATLAB avec Python.

Suite au décès de John Hunter en 2012, Matplotlib a été améliorée au fil du temps par de nombreux contributeurs de la communauté open source. Elle est utilisée pour créer des graphiques, et des diagrammes de haute qualité. C’est une alternative open source à MATLAB.

Il est par exemple possible de créer des tracés, des histogrammes, des diagrammes à barre et tous types de graphiques à l’aide de quelques lignes de code. Il s’agit d’un outil très complet, permettant de générer des visualisations de données très détaillées.

Cette bibliothèque est particulièrement utile pour les personnes travaillant avec Python ou NumPy. Elle est notamment utilisée sur des serveurs d’application web, des shells et des scripts Python. Avec les APIs de matplotlib, il est aussi possible pour les développeurs d’intégrer des graphiques à des applications d’interface graphique.

Les principaux concepts de Matplotlib

Matplotlib repose sur plusieurs éléments clés. Une « figure » est une illustration complète. Chaque tracé de cette figure est appelé un « axe ».

Le « plotting » consiste à créer un graphique. Il est nécessaire d’utiliser des données, sous forme de paires clé / valeur constituant les axes X et Y. On utilise ensuite des fonctions comme « scatter », « bar » et « pie » pour créer le schéma.

Il est possible de créer des graphiques basiques tels que des diagrammes à barre ou des histogrammes, mais aussi des figures plus complexes en trois dimensions.

matplotlib graphiques

4 choses à savoir faire avec Matplotlib

Avec Matplotlib, vous pourrez améliorer l’aspect visuel de vos graphiques notamment en ajoutant un titre et des légendes, mais aussi en choisissant le style et la couleur des visualisations. Il est aussi possible de jouer sur la taille des figures ainsi que de choisir la disposition des graphiques si vous choisissez d’afficher plusieurs graphiques dans une même figure.

Matplotlib dispose aussi d’une fonction pour annoter librement les graphiques ainsi que pour sauvegarder une image au format jpg. Il est enfin possible d’ajouter un tatouage numérique dans un graphique afin d’ajouter des informations de copyright.
A présent nous allons voir quelques exemples de graphiques que l’on peut réaliser avec Matplotlib et les quelques lignes de code pour le tracer.

1. Tracer des fonctions

Matplotlib est avant tout une librairie qui permet de tracer des fonctions et d’afficher leurs courbes dans des graphiques. Nous pouvons obtenir les allures des fonctions trigonométriques comme sinus et cosinus en spécifiant l’intervalle sur lequel nous voulons observer ces fonctions.

Voilà un exemple de tracé entre 0 et 6 pour les fonctions sinus et cosinus. La fonction utilisée est plot() qui est une fonction de base de Matplotlib.

Pour faire ce graphe nous utilisons deux librairies, Matplotlib et NumPy. NumPy permet de calculer le sinus et le cosinus, et la fonction arrange créée une liste de 0 à 2 Pi avec un écart de 0.1 entre chaque valeur.

2. Faire des graphiques 2D

Une autre fonctionnalité de Matplotlib est la réalisation de graphiques en 2D, ceci étant très utile pour un Data Scientist dans l’étape de visualisation des données. En effet, il est possible d’afficher des histogrammes, des diagrammes circulaires, des diagrammes en moustache, des scatter plots, des stackplots (pour visualiser des données de manière empilées comme), etc.

Ces graphiques peuvent servir par exemple pour afficher la distribution des données, leurs indicateurs statistiques, leur tendances sur une certaine période si l’on traite des données temporelles, etc.

Les principales fonctions utilisées sont

  • hist()pour tracer un histogramme.
  • bar()pour tracer un graphique en barres.
  • pie()pour tracer un graphique en camembert.
  • box()pour tracer des boîtes à moustaches.
  • scatter()pour tracer un nuage de points.
  • stackplot()pour tracer un graphique à zones empilées
exe de pie()

Cet exemple est inspiré du module “ Matplotlib – Boîtes à moustaches et camemberts” de notre formation Data Scientist et Data Analyst !

Ici nous utilisons les fonctions labels, colors et autopct du pie chart. Labels permet de choisir comme son nom l’indique permet de choisir le nom, colors qui peut être utilisé de plusieurs façon soit avec mot-clé “Yellow”,”Red” ou par code Hex comme dans notre exemple. 

Ici nous utilisons deux listes Pda et Pds que nous avons créées au préalable afin de créer nos bars chart. D’abord nous faisons le premier, avant d’ajouter le deuxième en spécifiant bottom=Pda pour dire que le deuxième bar chart vient s’empiler sur le premier.

exemple de bar()

Pour ce bar chart nous avons décidé de mettre les deux barres côte à côte, pour se faire nous utilisons deux valeurs pour l’axe X, tout d’abord x1 qui va de 0 à 11 avec un pas et x2 qui va de 0.4 à 11.4 avec un pas de 1. Nous faisons cela pour décaler la deuxième colonne de 0.4, qui sera aussi la taille de nos barres. 

Ces deux graphiques sont inspirés du module “Matplotlib – Graphiques en barres” du parcours Data Scientist et Data Analyst.

Pour ce graphe nous utilisons des listes pour les axes, les deux groupes de nuages de points partagent le même axe X mais ont des valeurs différentes pour l’axe Y. On peut aussi voir qu’on utilise l’argument s pour faire varier la taille de nos points. 

3. Afficher des graphiques 3D

Il est aussi possible de réaliser des graphiques en 3D à l’aide de Matplotlib. Pour cela il faut utiliser une librairie spéciale de Matplotlib appelée mpl_toolkits.mplot3d (souvent renommé Axes3D). 

Les graphiques en 3D permettent de faciliter certaines visualisations et rendre un rapport plus agréable à lire.

En général, les fonctions utilisées sont Axes3D.plot(), Axes3D.scatter, Axes3D.plot_wireframe(), Axes3D.plot_surface(), Axes3D.bar()

Voilà un exemple de ce que l’on peut afficher grâce à ces fonctions. L’exemple est issu de la documentation officielle 

4. Créer des widgets

La dernière fonctionnalité de Matplotlib que nous allons aborder est la création de widgets. Ce sont des visualisations interactives sur lesquelles l’utilisateur peut agir. Pour un data scientist, cela peut se révéler très utile par exemple pour voir comment la modification d’un paramètre influence une fonction ou un modèle de Machine Learning.

Toutes les classes nécessaires à l’implémentation d’un widget se trouvent dans le module matplolib.widgets.

La création d’un widget nécessite de créer des objets et des fonctions qui vont décrire l’action d’un objet sur un autre objet. On peut citer comme objet par exemple un curseur (de la classe Slider) ou encore un bouton (de la classe Button) qui pourraient, par exemple, permettre de couvrir tout un intervalle de valeur que prendrait le paramètre d’une fonction. Ainsi, selon la valeur de ce paramètre, l’utilisateur voit le graph de la fonction changer de manière instantanée.

Ce widget est issu du module “Introduction au Deep Learning avec Keras” des parcours Data Scientist et Data Analyst.

En réglant les paramètres w1 et w2, nous pouvons ajuster la droite tracée en rouge afin de trouver la frontière qui sépare les données en vert des données en orange. C’est ce que l’on appelle un problème de classification par une méthode linéaire : on sépare des données en deux catégories grâce à une frontière de décision linéaire.

Qu'est-ce que PyPlot ?

Pyplot est un module Matplotlib proposant plusieurs fonctions simples pour ajouter des éléments tels que des lignes, des images ou des textes aux axes d’un graphique. Son interface est très confortable, et c’est pourquoi ce module est très utilisé.

Il existe aussi une API  » orientée objet  » (OO) offrant davantage de flexibilité et de personnalisation en permettant d’assembler les objets plus librement. Toutefois, elle est plus difficile d’utilisation.

Matplotlib, Numpy et Pandas

Numpy est un package Python dédié au calcul scientifique. Il s’agit d’une dépendance indispensable pour matplotlib, puisque ce dernier utilise les fonctions Numpy pour les données numériques et les arrays multi-dimensionnelles.

De son côté, Pandas est une bibliothèque Python également utilisée par matplotlib pour la manipulation et l’analyse de données. Il ne s’agit pas d’une dépendance indispensable comme numpy, mais elle est très souvent utilisée avec matplotlib.

Matplotlib et la Data Science

Python est le langage de programmation le plus utilisé pour la Data Science et le Machine Learning. De fait, les ressources telles que NumPy et matplotlib sont très utiles pour la création de modèles d’apprentissage automatique.

Les programmeurs peuvent accéder à ces bibliothèques pour effectuer des tâches cruciales au sein de l’environnement Python. Il est ensuite possible d’intégrer les résultats avec les autres éléments et fonctionnalités d’un programme de Machine Learning ou d’un réseau de neurones.

Quelles sont les difficultés liées à Matplotlib ?

L’apprentissage de Matplotlib peut se révéler compliqué. Il existe de nombreux tutoriels, mais plusieurs difficultés se dressent sur le chemin des débutants.

Tout d’abord, cette bibliothèque est extrêmement vaste. Au total, elle comporte plus de 70 000 lignes de code. Elle accueille également plusieurs interfaces différentes, et a la capacité d’interagir avec différents backends pour le rendu des graphiques.

En outre, même si la documentation publiquement accessible sur matplotlib est compréhensible, certains documents sont tout bonnement obsolètes. Cet outil continue à évoluer au fil du temps, et certains exemples disponibles sur internet peuvent en réalité être réalisés avec 70% de lignes de code en moins sur les versions modernes.

Comment se former à Matplotlib ?

Matplotlib offre de nombreuses possibilités pour la visualisation de données, mais peut être difficile à maîtriser de par sa complexité technique et sa syntaxe très lourde. Il est difficile d’apprendre à la maîtriser en autodidacte, car un large pan de la documentation disponible en ligne est obsolète.

Pour apprendre à utiliser cette bibliothèque, vous pouvez opter pour les formations DataScientest. Nous proposons des cursus permettant de se former aux différents métiers de la science des données : Data Analyst, Data Scientist, Data Engineer, ML Engineer, Data Manager…

Pour tous nos parcours, Python est le langage de programmation de prédilection. Vous apprendrez à utiliser ce langage et ses différentes bibliothèques de Data Science, notamment matplotlib pour la DataViz. Cet outil est au programme du module  » visualisation de données  » pour nos formations Data Analyst, Data Scientist et Data Management.

Toutes nos formations proposent une approche Blended Learning, alliant plateforme en ligne coachée et masterclass en présentiel. Elles peuvent être effectuées en Formation Continue ou en BootCamp intensif en seulement quelques semaines.

À l’issue de ces parcours, les apprenants reçoivent un diplôme certifié par l’Université de la Sorbonne et peuvent rapidement s’insérer sur le marché du travail. Plus de 90% des diplômés décrochent un emploi après leur formation.

Ainsi, DataScientest est le meilleur moyen d’apprendre à maîtriser matplotlib, Python et les différentes ressources de science des données. N’attendez plus et découvrez nos formations dès à présent.

Conclusion

Si Matplotlib permet de créer et d’afficher des visualisations diverses et variées, il existe d’autres bibliothèques permettant de faire des visuels tout aussi sympas. On peut citer entre autres les bibliothèques Seaborn, Bokeh ou encore Ggplot.

La visualisation de données est au centre de toutes les problématiques abordées par les Data Scientists et les Data Analysts. Pour apprendre à maîtriser ces techniques, plusieurs modules sont dédiés à Matplotlib, Bokeh et Seaborn dans nos formations Data Scientist et Data Analyst.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?