Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Python pour la Data Science
  3. Maîtriser la librairie Seaborn
Extrait - Python pour la Data Science Analysez vos données par la pratique avec NumPy, Pandas, Matplotlib et Seaborn
Extraits du livre
Python pour la Data Science Analysez vos données par la pratique avec NumPy, Pandas, Matplotlib et Seaborn
4 avis
Revenir à la page d'achat du livre

Maîtriser la librairie Seaborn

Introduction

Nous avons vu dans le chapitre précédent comment visualiser des données avec la librairie Matplotlib et l’importance de la visualisation pour détecter des tendances dans nos données. Nous allons maintenant voir la deuxième librairie graphique la plus populaire, Seaborn.

En réalité, cette librairie s’appuie sur Matplotlib et apporte des fonctions supplémentaires permettant de générer des graphiques plus travaillés, plus modernes, et ce de manière très simple. Nous avons vu avec la librairie Matplotlib que lorsque nous souhaitons personnaliser nos graphiques et générer des graphiques plus complets, le code devient dense et parfois compliqué à écrire. L’objectif du développement de la librairie Seaborn était de rendre la génération de graphiques complexes plus facile, par l’appel de fonctions Seaborn.

Toutefois, cette librairie s’appuyant grandement sur la librairie Matplotlib, ses fonctions sont un complément de la librairie Matplotlib et son fonctionnement en est proche. Par exemple, nous utiliserons toujours le module Pyplot pour créer des figures, donner des étiquettes aux axes, etc. Mais nous utiliserons simplement des fonctions Seaborn pour tracer le graphique. Seaborn a été développée pour travailler avec...

L’esthétique des figures avec Seaborn (Aesthetic)

Pour commencer, la syntaxe générale pour importer la librairie Seaborn est la suivante.

Syntaxe

import seaborn as sns 

Il est courant de renommer la librairie Seaborn avec l’alias sns.

En plus de fournir un ensemble de fonctions permettant de tracer divers graphiques très complets, Seaborn fournit aussi un ensemble de thèmes, qui permettent de rendre les graphiques plus modernes, et ce de manière très simple. Il est possible de faire la même chose avec Matplotlib, mais il faut jouer avec beaucoup d’options liées à l’esthétique pour arriver au résultat que Seaborn fournit en choisissant juste un thème comme option.

Il est possible d’utiliser les fonctions d’esthétique de Seaborn sur les graphiques générés avec le module Pyplot (Matplotlib) ou sur les graphiques générés directement avec la librairie Seaborn. Dans cette section, nous allons apprendre à utiliser l’esthétique Seaborn sur des graphiques Matplotlib, car nous les connaissons bien maintenant. Nous verrons plus tard les différents types de graphiques disponibles avec des fonctions spécifiques à Seaborn.

1. Paramétrer les styles Seaborn (thèmes)

Les thèmes sont importants car ils permettent de styliser votre graphique et de faire ressortir les couleurs de celui-ci.

Pour appeler un thème Seaborn et utiliser les styles de ce thème lors de la génération du graphique, la syntaxe générale est la suivante :

import matplotlib.pyplot as plt 
import seaborn as sns 
sns.set_style("darkgrid") 
plt.figure() 
plt.subplot(111) 
plt.plot(x,y) 
plt.show() 

Ici, on utilise la fonction set_style() de Seaborn, qui permet de définir le thème de la figure à utiliser. Par défaut, le thème est appelé darkgrid : ce thème permet d’avoir un fond de graphique grisé et une grille (grid).

Il existe d’autres thèmes, comme par exemple whitegrid, qui fournit une grille sur fond blanc, dark avec un fond grisé sans grille, white avec un fond blanc sans grille, ou encore le thème ticks qui ressemble beaucoup au thème white, avec un fond blanc, à la différence...

Les différents types de graphiques

1. Préparation du jeu de données

Les mêmes jeux de données nettoyés que précédemment seront utilisés : donnees_NaN_supprimes et donnees_NaN_remplaces, selon ce que nous voulons représenter sur notre graphique. Le code pour régénérer ces objets est disponible dans le notebook associé à ce chapitre.

2. Nuage de points (scatterplot)

Nous l’avions vu dans le chapitre sur la librairie Matplotlib, le scatterplot (ou nuage de points, en français) est le graphique utilisé pour visualiser une relation statistique entre deux variables quantitatives. Le but ici est de tracer, pour chaque individu ou observation, un point, représentant sa valeur dans deux variables quantitatives.

Le grand avantage de la fonction de génération de ce type graphique avec Seaborn, par rapport à Matplotlib, est la possibilité d’augmenter les informations sur le graphique avec des modalités de variables qualitatives : pour cela, on utilisera la couleur des points, leur forme ou encore leur taille.

Syntaxe générale

import matplotlib.pyplot as plt 
import seaborn as sns 
plt.figure() 
plt.subplot(111) 
sns.scatterplot(data=dataframe,x='Ma_colonne1',y='Ma_colonne2', 
hue='Ma_colonne3',style='Ma_colonne4', size='Ma_colonne5') 
plt.show() 

En regardant cette syntaxe générale, on voit l’utilité de connaître le fonctionnement de la librairie Matplotlib avant d’apprendre à utiliser Seaborn. En effet, la création de la figure, des axes ou encore l’affichage du graphique avec la fonction show() nécessitent de connaître Matplotlib/Pyplot. En revanche, pour créer le graphique, nous utilisons une fonction propre à Seaborn appelée scatterplot, qui permet de tracer un nuage de points.

L’option data de cette fonction attend un dataframe. Seaborn est très utilisée en Data Science, car elle est adaptée à la structure préférée des analystes de données, le dataframe. En donnant un dataframe à Seaborn, il est alors au courant de l’ensemble des variables de ce dataframe et de leur nom (les noms de colonnes). Ainsi, pour tracer...

Les graphiques multi-grilles

1. FacetGrid

Lorsqu’on souhaite tracer plusieurs graphiques sur une même figure avec Seaborn et donc créer plusieurs axes sur la figure, selon différentes modalités, il faut utiliser la fonction FacetGrid().

Syntaxe générale

import matplotlib.pyplot as plt 
import seaborn as sns 
mon_facetgrid = sns.FacetGrid(mon_dataframe, row = 'Variable1',  
col = 'Variable2', hue = 'Variable3') 
mon_facetgrid.map(sns.scatterplot, 'Variable4', 'Variable5') 

La première commande consiste à créer l’objet FacetGrid avec autant de grilles que ce qu’on veut tracer. La fonction FacetGrid attend quatre options :

  • Le dataframe contenant nos variables souhaitées.

  • row : une variable qualitative (ou quantitative discrète). Il y aura autant d’objets axes en ligne que de modalités dans la variable donnée à l’option row.

  • col : une variable qualitative (ou quantitative discrète). Il y aura autant d’objets axes (de graphiques) en colonne, que de modalités dans la variable donnée.

  • hue : la variable selon laquelle on veut colorer/séparer les valeurs sur l’ensemble des graphiques. row et col créent les différents axes des différents graphiques, hue permettra, pour un nuage de points, de colorer les points selon la variable ou, pour un countplot, de séparer les barres selon cette même variable, etc.

Une fois l’objet mon_facetgrid créé, les axes sont vides, il faut y tracer des courbes. Pour cela, on utilise la méthode map() sur l’objet FacetGrid créé. En première option, on détermine...

Conclusion

Vous voici arrivé à la fin de la lecture de ce livre sur l’analyse de données avec Python et ses librairies dédiées. À présent, vous êtes capable de manipuler, explorer et visualiser des jeux de données structurés avec ce langage très populaire. Afin de tester les connaissances acquises dans ce livre, le chapitre suivant laisse place à un exercice complet, sur un nouveau jeu de données.