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 :

          Signature relplot

          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écution
          Cellule 2
          ← Exécution

          On 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écution

          Ellipse vient de matplotlib.patches.


          On peut aussi afficher des lignes en modifiant le kind en "line" :

          Cellule 4
          ← Exécution

          size 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.

          signature displot

           
          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écution

          Voila un code modifiable d'exemple qui permet de faire un histogramme:
          Cellule 2
          ← Exécution

          Si 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écution

          Si l'on renseigne une variable pour y

          Cellule 4
          ← Exécution

          Un 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écution

          Le 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().

          signature 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écution
          Cellule 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écution

          log_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().

          signature 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écution

          split 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écution
          Cellule 2
          ← Exécution

          Ici 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écution

          L’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 : 

          signature lmplot

          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écution

          Les 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écution
          Cellule 2
          ← Exécution

          On 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écution

          Avec 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.

          signature clustermap

          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écution

          On 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écution

          row_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.