Résumé de section
-
-
-
-
Que sont les données quantitatives?
Les données quantitatives, ou numériques, comme leur nom l'indique, sont constituées des données mesurables, donc des nombres.
Nous allons présenter et tester les différents types de graphiques que l'on peut faire avec Seaborn.
-
-
-
-
-
La fonction relplot() permet de faire des graphiques de type nuage de points et de type courbe.
Voici la signature de la fonction :

Il y évidemment une documentation accessible sur internet, donc on ne va passer que sur les éléments les plus essentiels pour pouvoir afficher ce dont on a besoin le plus vite possible, à savoir :
Nom du paramètre Explications Ce qui lui faut comme format Exemple data Il faut donner au paramètre data le tableau entier que vous traitez
DataFrame, Series, dict, array, or list of arrays data=tableau x variable du tableau utilisée pour les abscisses Chaine de caractères correspondant à une variable du tableau x="poids" y variable du tableau utilisée pour les ordonnées Chaine de caractères correspondant à une variable du tableau y=”taille” hue variable du tableau permettant de rajouter une dimension avec de la couleur Chaine de caractères correspondant à une variable du tableau, catégorielle ou entière hue=”age” size variable du tableau qui controlera la taille des points Chaine de caractères correspondant à une variable du tableau, numérique size=”argent” style variable du tableau qui controlera le style des points Chaine de caractères correspondant à une variable du tableau, catégorielle ou entière style=”sex” row variable du tableau qui permettra de créer un tableau de graphiques, ici les lignes Chaine de caractères correspondant à une variable du tableau, catégorielle ou entière row=”catégorie” col variable du tableau qui permettra de créer un tableau de graphiques, ici les colonnes Chaine de caractères correspondant à une variable du tableau, catégorielle ou entière col=”métier” kind type de graphique que l’on veut Chaine de caractères, 2 choix possibles kind=”scatter” ou kind=”line”
Voici un exemple avec le code suivant, que vous pouvez exécuter :
Code d'importation← ExécutionCellule 2← ExécutionOn peut constater que col permet de faire différents graphiques sur une même figure, hue permet à l'aide de couleurs de distinguer une variable et style permet à l'aide de la forme des points de distinguer une autre variable. Vous pouvez tester différents paramètres et relancer le code.
On peut rajouter des ellipses sur des relplot scatter, pour dessiner dessus il faut récupérer l’ax :Cellule 3← ExécutionEllipse vient de matplotlib.patches.
On peut aussi afficher des lignes en modifiant le kind en "line" :
Cellule 4← Exécutionsize n'est pas utilisable avec le graphique de kind "lines".
Cette fois style modifie le style de ligne selon la valeur de la variable "sex".
-
-
-
-
-
Le displot() permet d'afficher différents types de distributions.

Nom du paramètre Explications Ce qui lui faut comme format Exemple data Il faut donner au paramètre data le tableau entier que vous traitez
DataFrame, Series, dict, array, or list of arrays data=tableau x variable du tableau utilisée pour les abscisses Chaine de caractères correspondant à une variable du tableau x="poids" y variable du tableau utilisée pour les ordonnées Chaine de caractères correspondant à une variable du tableau y=”taille” hue variable du tableau permettant de rajouter une dimension avec de la couleur Chaine de caractères correspondant à une variable du tableau, catégorielle ou entière hue=”age” row variable du tableau qui permettra de créer un tableau de graphiques, ici les lignes Chaine de caractères correspondant à une variable du tableau, catégorielle ou entière row=”catégorie” col variable du tableau qui permettra de créer un tableau de graphiques, ici les colonnes Chaine de caractères correspondant à une variable du tableau, catégorielle ou entière col=”métier” kind type de graphe que l’on veut Chaine de caractères, 3 choix possibles kind=”hist”,kind=”kde” ou kind=”ecdf” rug permet de voir les observations individuelles sur les axes. Booléen rug=True Code d'importation← ExécutionVoila un code modifiable d'exemple qui permet de faire un histogramme:Cellule 2← ExécutionSi l’on ne renseigne pas la donnée à mettre en ordonnée y, l’ordonnée sera le nombre d’occurence, et si l’on ne renseigne pas le kind c’est un histogramme par défaut. L’argument bins controle le nombre de barres. Le paramètre rug permet de voir les observations individuelles sur les axes du graphique.
Nous avons aussi accès à la kernel density estimation(KDE) pour estimer une distribution. Voici un code d'exemple d'utilisation :
Cellule 3← ExécutionSi l'on renseigne une variable pour y :
Cellule 4← ExécutionUn graphique de ce type se lit comme une carte de niveau. Chaque ligne correspond à des points ayant des densités de probabilités proches. Les centres de lignes sont les zones de plus haute densité.
Le dernier type de distribution disponible est l'ECDF(empirical distribution function). On ne peut pas renseigner y pour cette distribution étant donné qu'elle est monovariationnelle.
data = sns.load_dataset("penguins") sns.displot(data=data, x="body_mass_g", rug=True, hue="sex", kind="ecdf", row="species", col="sex", height=5) plt.show()Cellule 5← ExécutionLe paramètre row permet d'afficher encore plus de graphique selon une autre variable des données, les données comportent 3 espèces de pingouins on a donc 3 lignes de graphique, il y a 2 sexes dans les données on a donc 2 colonnes. height permet de contrôler la hauteur des graphiques.
-
-
-
-
-
Une représentation graphique de données classique est la boîte à moustache qui est accessible via boxplot().

Nom du paramètre Explications Ce qui lui faut comme format Exemple data Il faut donner au paramètre data le tableau entier que vous traitez
DataFrame, Series, dict, array, or list of arrays data=tableau x variable du tableau utilisée pour les abscisses Chaine de caractères correspondant à une variable du tableau x="poids" y variable du tableau utilisée pour les ordonnées Chaine de caractères correspondant à une variable du tableau y=”taille” hue variable du tableau permettant de rajouter une dimension avec de la couleur Chaine de caractères correspondant à une variable du tableau, catégorielle ou entière hue=”age” dodge variable permettant de choisir si les graphiques peuvent se superposer Booléen dodge=False width Variable permettant de contrôler les largeurs des boîtes. Valeur flottante width=0.5 gap Variable permettant de contrôler l’écart entre les différentes boîtes “dodgées” Valeur flottante gap=0.1
Voici un exemple de code que vous pouvez modifier et exécuter : :
Code d'importation← ExécutionCellule 2← Exécution
De base gap vaut 0. L’orientation est gérée automatiquement par seaborn, mais si le graphique est bidimensionnel avec 2 variables numériques on peut la chosir avec orient qui vaut "h" ou "v".Cellule 3← Exécutionlog_scale permet de changer l’échelle. Une valeur numérique définit la base, qui de base est la base 10. Si le graphique est bidimensionnel 2 valeurs peuvent être données, une pour chaque axe.
Le diagramme en violon est aussi accessible via violinplot().

Nom du paramètre Explications Ce qui lui faut comme format Exemple data Il faut donner au paramètre data le tableau entier que vous traitez
DataFrame, Series, dict, array, or list of arrays data=tableau x variable du tableau utilisée pour les abscisses Chaine de caractères correspondant à une variable du tableau x="poids" y variable du tableau utilisée pour les ordonnées Chaine de caractères correspondant à une variable du tableau y=”taille” hue variable du tableau permettant de rajouter une dimension avec de la couleur Chaine de caractères correspondant à une variable du tableau, catégorielle ou entière hue=”age” inner variable permettant de contrôler la représentation des données dans le violon Chaine de caractères correspondant à un type de représentation inner=”box”,inner=”quart”,inner=”point” split Variable permettant de choisir si la représentation est symétrique. Booléen split=True width Variable permettant de contrôler la largeur des violons. Valeur flottante width=0.5 dodge variable permettant de choisir si les graphes peuvent se superposer Booléen dodge=False gap Variable permettant de contrôler l’écart entre les différentes boîtes “dodgées” Valeur flottante gap=0.1 Voici un exemple de code à exécuter :
Cellule 3← Exécutionsplit permet d'afficher 2 distributions sur un même violinplot, étant donnés que ceux-ci sont symétriques. linewidth contrôle l'épaisseur des lignes de contour.
Nous avons affiché les points individuels dans le violin plot mais nous pouvons choisir d'afficher une boîte à moustache miniature avec inner="box" :
Cellule 4← Exécution
-
-
-
-
-
Si l'on souhaite faire des régressions linéaires, seaborn a une fonction prédisposée : regplot().

Nom du paramètre Explications Ce qui lui faut comme format Exemple data Il faut donner au paramètre data le tableau entier que vous traitez
DataFrame, Series, dict, array, or list of arrays data=tableau x variable du tableau utilisée pour les abscisses Chaine de caractères correspondant à une variable du tableau x="poids" y variable du tableau utilisée pour les ordonnées Chaine de caractères correspondant à une variable du tableau y=”taille” ci variable permettant de contrôler l’intervalle de confiance affiché Entier entre 0 et 100. ci=99 nboot variable permettant d’indiquer le nombre de réechantillonage bootstrap réalisés. Entier nboot=100 seed variable indiquant une graine pour le bootstrap. Permet la reproductibilité. Entier seed=42 logistic Variable permettant de choisir de faire une régression logistique Booléen logistic=True lowess Variable permettant de choisir de faire une régression LOWESS. Booléen lowess=True robust Variable permettant de choisir de faire une régression robuste. Booléen robust=True regplot() permet aussi d'afficher l'intervalle de confiance de la courbe, par défaut à 95%.
Voici un exemple de code modifiable :
Code d'importation← ExécutionCellule 2← ExécutionIci nous sommes confiant à 70% que la vraie courbe se trouve dans l'intervalle affiché sur le graphique. nboot de base vaut 1000, augmenter cette valeur entrainera forcément un temps d'exécution plus long du code car il devra faire des rééchantillonages supplémentaires. seed permet de pour en voir toujours reproduire les mêmes échantillonages utilisant un entier "graine", pratique pour la reproductibilité lors de l'écriture d'un article scientifique ou pour vérifier le fonctionnement d'une méthode.
On peut modifier le type en choisissant une méthode de régression, par exemple le paramètre lowess et en le mettant à True :
Cellule 3← ExécutionL’intervalle de confiance n’est pas affiché lorsque l’on utilise une lowess.
Une autre option est le lmplot() qui est plus adapté pour faire des régression mais sur plusieurs graphiques :

Nom du paramètre Explications Ce qui lui faut comme format Exemple data Il faut donner au paramètre data le tableau entier que vous traitez
DataFrame, Series, dict, array, or list of arrays data=tableau x variable du tableau utilisée pour les abscisses Chaine de caractères correspondant à une variable du tableau x="poids" y variable du tableau utilisée pour les ordonnées Chaine de caractères correspondant à une variable du tableau y=”taille” hue variable du tableau permettant de rajouter une dimension avec de la couleur Chaine de caractères correspondant à une variable du tableau, catégorielle ou entière hue=”age” row variable du tableau qui permettra de créer un tableau de graphiques, ici les lignes Chaine de caractères correspondant à une variable du tableau, catégorielle ou entière row=”catégorie” col variable du tableau qui permettra de créer un tableau de graphiques, ici les colonnes Chaine de caractères correspondant à une variable du tableau, catégorielle ou entière col=”métier” ci variable permettant de contrôler l’intervalle de confiance affiché Entier entre 0 et 100. ci=99 nboot variable permettant d’indiquer le nombre de réechantillonage bootstrap réalisés. Entier nboot=100 lowess Variable permettant de choisir de faire une régression LOWESS. Booléen lowess=True Voici un exemple de code :
Cellule 4← ExécutionLes régressions robust et logistic sont aussi disponibles comme pour regplot(). nboot et seed aussi.
-
-
-
-
-
Seaborn permet aussi de faire des heatmap avec heatmap().

Nom du paramètre Explications Ce qui lui faut comme format Exemple data Il faut donner au paramètre data le tableau entier que vous traitez
DataFrame, Series, dict, array, or list of arrays data=tableau cmap Couleurs de la heatmap. Soit une palette de matplotlib soit une personalisée. Chaîne de caractères correspondant à une palette ou une color_palette de seaborn. cmap=”viridis” ou cmap = sns.color_palette("light:blue", as_cmap=True) annot Variable qui choisit si on affiche les valeurs des cellules Booléen annot=True, vaut False par défaut vmin Valeur minimum qui sera prise en compte pour la colormap Valeur flottante vmin=30.6 vmax Valeur maximale qui sera prise en compte pour la colormap Valeur flottante vmax=42 linecolor Variable permettant de choisir la couleur des lignes entre les cellules. Chaîne de caractère correspondant à une couleur linecolor=”blue” linewidths Variable contrôlant l’épaisseur des lignes entre les cellules Valeur flottante linewidths=0.2 ou linewidths=10 mask Variable permettant de contrôler les valeurs prises en compte dans la heatmap. Tableau de booléen au même format que data. mask=tableau_mask
Voici un exemple de code :
Code d'importation← ExécutionCellule 2← ExécutionOn utilise pivot afin de formater les données dans l'ordre que l'on veut :
-
index donne la variable des ordonnées
-
columns donne la variable des abscisses
-
values doit être une variable numérique et c'est ce que la heatmap va colorer.
Cellule 3← ExécutionAvec les paramètres vmin et vmax on peut choisir la plage de valeur sur laquelle la heatmap s'appliquera, et on a aussi des options graphiques comme avec linecolor et linewidths pour les lignes entre les cases. annot affiche les valeurs sur chaque case de la heatmap.
Si l'on a besoin d'avoir du clustering sur la heatmap on peut utiliser la clustermap() de Seaborn. Chose à savoir cette fonction nécessite scipy, il faudra donc l'installer sur l'environnement sur lequel vous travaillez. Si vous êtes sur le Collab, ca ne sera pas nécessaire vous pourrez l'importer directement.

Nom du paramètre Explications Ce qui lui faut comme format Exemple data Il faut donner au paramètre data le tableau entier que vous traitez
DataFrame, Series, dict, array, or list of arrays data=tableau method Méthode scipy pour faire le clustering Chaîne de caractère correspondant à une méthode de scipy method=’centroid’ metric Métrique scipy utilisée pour faire le clustering Chaîne de caractère correspondant à une métrique de scipy metric=’jaccard’ z_score Variable permettant de centrer et réduire les données. 0 pour centrer et réduire les lignes, 1 pour les colonnes z_score=0 standard_scale Variable permettant de normaliser les données. 0 pour normaliser les lignes, 1 pour les colonnes standard_scale=1 row_cluster,
col_cluster
Variables permettant de choisir les axes de clustering Booléen row_cluster=False, faut True par défaut figsize Variable contrôlant la taille de la figure tuple(largeur,hauteur) figsize=(4,4) dendrogram_ratio Variable contrôlant le ratio de taille des dendogram tuple(ratio de ligne, ratio de colonne) dendrogram_ratio=(0.2,0.1) cbar_pos Variable contrôlant la position de la barre de couleur. tuple(gauche,bas,largeur,hauteur) cbar_pos=(0,0.1,0.05,0.6)
Voici un exemple de code :
Cellule 4← ExécutionOn retire la variable en trop avec pop() pour pouvoir faire le clustering qui est "species", on la réutilisera juste après.
Les dendrogrammes sont les arbres sur le côté de la clustermap qui représentent les différents regroupement effectués.
Maintenant explorons différents paramètres :
Cellule 5← Exécutionrow_cluster permet de regrouper les lignes selon leur similarité pour faire apparaitre des groupes. dendrogram_ratio permet de contrôler la taille des dendrogrammes, la première valeur est pour celui à gauche et la seconde celui en haut. row_colors permet de rajouter une couleur à côté des lignes. Ici avec les lignes précédentes on a l'espèce de chaque ligne de renseignée. metric permet de choisir la distance de similarité utilisée et method l'algorithme utilisé pour faire les regroupements. z_score à 1 indique qu'on normalise sur les lignes. cbar_pos permet de choisir la position de la cbar. annot permet d'afficher les valeurs de chaque case. figsize permet de contrôler la taille de la figure.
-
-
-
-