Résumé de section
-
-
-
-
Depuis la mise à jour 0.12 de Seaborn des objets seaborn ont été introduits. Ceux-ci constituent une alternative puissante aux fonctions de plot originelles. Les objects sont inspirés de ggplot2 de R.
Nous allons prendre un exemple simple. Tout d'abord on importe les objets de la manière suivante :
import seaborn.objects as soLa manière de construire des graphiques avec les objets est spécifique. Une seule fonction permet de faire des graphiques :
so.Plot()A celle-ci nous indiquons les données que nous allons utiliser :
so.Plot(tips,x=”total_bill”)Ici tips est le dataset tips de Seaborn.
Une fois que l'on a spécifié les données il reste à décider ce que nous allons en faire avec add(), ici un histogramme :
so.Plot(tips,x=”total_bill”).add(so.Bar(),so.Hist()).show()Et voici le résultat :

-
-
-
-
-
L'équivalent des scatterplot faisables avec les relplot() est l'objet Dot(). Après la cellule d'import tous les codes seront modifiables.
Code d'importation← ExécutionCellule 2← Exécutioncolor remplit le même rôle que le paramètre hue précédent, permettant de séparer les données selon une variable. marker permet d'utiliser une autre variable qui sera différenciée à l'aide de différents types de points, comme le paramètre style précédent. facet() remplit le même rôle que row et col. limit permet de restreindre les graphiques à des intervalles précis sur x et/ou y.
Nous pouvons aussi facilement rajouter une courbe de régression avec Line() et Polyfit() :
Cellule 3← Exécution
Cette même Line() peut avoir différents types comme Polyfit() mais peut aussi être utilisée en tant que représentation des données :
Cellule 4← ExécutionSi l'on ne spécifie pas de type de Line() on relie les points de donnée avec des lignes. Chose intéressante avec le fait d'utiliser des DataFrame pandas, ce que rend la méthode load_dataset(), c'est que l'on peut utiliser .query() pour faire des requêtes type SQL pour sélectionner des données spécifiques. Ici nous prenons seulement les joyaux dont la "cut" est "Ideal" et avec certaines couleurs spécifiques. La fonction pipe() chainée permet de donner ce DataFrame selectionné en argument de la fonction Plot(), les autres arguments peuvent ensuite être donnés tels que x, y et linestyle. La ligne tracée ne correspond pas à chaque point d'observation, en effet l'utilisation de Agg() permet de faire de l'aggrégation de données : chaque "price" pour une "depth" donnée est aggrégée et moyennée dans le graphique. Les objets Band() et Est() permettent d'afficher l'incertitude des courbes.
L'objet Path() est une alternative à Line(), idéale pour représenter des trajectoires car elle relit les points de données dans l'ordre dans lequel ils sont présentés.
Cellule 5← Exécution
Si l'on veut afficher la surface sous des courbes, on utilise Area(). Le paramètre wrap de facet() permet de chosir combien de graphique il y aura par ligne.
Cellule 6← ExécutionOn peut empiler les surfaces avec Stack().
Cellule 7← Exécution
L'objet Range() permet d'afficher des intervalles et nécessite des bornes ou un Est() pour calculer ce qu'il y a à afficher. Avec ce dernier on affiche la moyenne et l'intervalle de confiance. On peut aussi explicitement donner des bornes à afficher.
Cellule 8← Exécution
Pour faire des histogrammes, on utilise Bar() avec Hist(). On peut choisir le type de statistique utilisée. Par défaut "count" est utilisé mais on peut choisir "density" pour des densités de probabilités, "percent" pour avoir des pourcentages, "probability" pour des proportions ou encore "frequency" pour la fréquence.
Cellule 9← ExécutionOn peut aussi utiliser Bar() pour afficher par exemple une moyenne avec Agg() qui permet de faire de l'aggrégation de données. Dodge() permet de faire la même chose que dodge des graphiques non objets.
Cellule 10← ExécutionPour compter simplement des occurences, on utilise aussi Bar() mais avec Count().
Cellule 11← Exécution
On peut aussi utiliser les objets Seaborn pour afficher des percentiles avec Perc(). On peut choisir les percentiles que l'on souhaite afficher, et ici on les affiche sous forme de Dot(). Si l'on ne choisit rien de spécifique on affiche les percentiles [20,40,60,80,100].
Cellule 12← ExécutionOn peut faire un graphique ou l'on rajoute différents intervalles correspondants à des percentiles avec Range() que l'on déplace avec Shift() pour que ce soit visible. Ici scale() permet de modifier l'échelle sur les axes, celui des abscisses dans notre cas.
Cellule 13← Exécution
On peut aussi normaliser les valeurs avec Norm(). Ici on normalise par rapport à l'année minimum, donc l'année 1970.
Cellule 14← Exécution
Les objets Dot(), Line(), Path() et Bar() ont des variantes (Dots, Lines, etc.) plus adaptées aux gros volumes de données. Voici un exemple avec à gauche Bar() et à droite Bars().
On peut aussi modifier l'échelle des axes avec scale(). Différents choix tels que "log" et "sqrt" sont disponibles, ainsi que "log2" et "log10".
Cellule 15← Exécution
-
-
-