Tutoriel Seaborn Python
Tutoriel Seaborn Python
Seaborn est une bibliothèque Python open source sous licence BSD fournissant une API de haut
niveau pour visualiser les données à l'aide du langage de programmation Python.
Ce tutoriel vous présente les bases et les différentes fonctions de Seaborn. Il est particulièrement
utile pour les personnes travaillant sur l'analyse de données. Après avoir terminé ce didacticiel,
vous vous retrouverez à un niveau d'expertise modéré à partir duquel vous pourrez accéder à
des niveaux d'expertise plus élevés.
Vous devez avoir une compréhension de base des terminologies de programmation informatique.
Une compréhension de base de Python et de l'un des langages de programmation est un plus.
La bibliothèque Seaborn est construite sur Matplotlib. Avoir une idée de base de Matplotlib vous
aidera à mieux comprendre ce tutoriel.
Seaborn - Présentation
Dans le monde d'Analytics, la meilleure façon d'obtenir des informations est de visualiser les
données. Les données peuvent être visualisées en les représentant sous forme de tracés faciles
à comprendre, à explorer et à saisir. Ces données aident à attirer l'attention sur des éléments
clés.
Pour analyser un ensemble de données à l'aide de Python, nous utilisons Matplotlib, une
bibliothèque de traçage 2D largement implémentée. De même, Seaborn est une bibliothèque de
visualisation en Python. Il est construit sur Matplotlib.
Seaborn Vs Matplotlib
On résume que si Matplotlib «essaie de rendre les choses faciles faciles et les choses difficiles
possibles», Seaborn essaie également de rendre facile un ensemble bien défini de choses
difficiles. »
Seaborn aide à résoudre les deux problèmes majeurs rencontrés par Matplotlib; les problèmes
sont -
Paramètres Matplotlib par défaut
Travailler avec des blocs de données
Comme Seaborn complimente et prolonge Matplotlib, la courbe d'apprentissage est assez
progressive. Si vous connaissez Matplotlib, vous êtes déjà à mi-chemin de Seaborn.
Dépendances
Considérez les dépendances suivantes de Seaborn -
Python 2.7 ou 3.4+
numpy
scipy
pandas
matplotlib
Maintenant, importons la bibliothèque Matplotlib, qui nous aide à personnaliser nos graphiques.
load_dataset()
Pour afficher tous les ensembles de données disponibles dans la bibliothèque Seaborn, vous
pouvez utiliser la commande suivante avec le get_dataset_names() fonction comme indiqué ci-
dessous -
import seaborn as sb
print sb.get_dataset_names()
La ligne de code ci-dessus renverra la liste des ensembles de données disponibles comme sortie
suivante
Voici à quoi ressemble un tracé avec les valeurs par défaut Matplotlib -
Pour changer le même tracé en valeurs par défaut Seaborn, utilisez le set() fonction -
Exemple
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set()
sinplot()
plt.show()
Production
Les deux figures ci-dessus montrent la différence entre les graphiques par défaut de Matplotlib et
de Seaborn. La représentation des données est la même, mais le style de représentation varie
dans les deux.
Fondamentalement, Seaborn divise les paramètres de Matplotlib en deux groupes -
Styles de tracé
Échelle de tracé
Exemple
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("whitegrid")
sinplot()
plt.show()
Production
Exemple
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("white")
sinplot()
sb.despine()
plt.show()
Production
Dans les graphiques réguliers, nous utilisons uniquement les axes gauche et inférieur. En
utilisant ledespine() fonction, nous pouvons éviter les épines inutiles des axes droit et supérieur,
ce qui n'est pas pris en charge dans Matplotlib.
Exemple
import seaborn as sb
print sb.axes_style
Production
{'axes.axisbelow' : False,
'axes.edgecolor' : 'white',
'axes.facecolor' : '#EAEAF2',
'axes.grid' : True,
'axes.labelcolor' : '.15',
'axes.linewidth' : 0.0,
'figure.facecolor' : 'white',
'font.family' : [u'sans-serif'],
'font.sans-serif' : [u'Arial', u'Liberation
Sans', u'Bitstream Vera Sans', u'sans-serif'],
'grid.color' : 'white',
'grid.linestyle' : u'-',
'image.cmap' : u'Greys',
'legend.frameon' : False,
'legend.numpoints' : 1,
'legend.scatterpoints': 1,
'lines.solid_capstyle': u'round',
'text.color' : '.15',
'xtick.color' : '.15',
'xtick.direction' : u'out',
'xtick.major.size' : 0.0,
'xtick.minor.size' : 0.0,
'ytick.color' : '.15',
'ytick.direction' : u'out',
'ytick.major.size' : 0.0,
'ytick.minor.size' : 0.0}
Exemple
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("darkgrid", {'axes.axisbelow': False})
sinplot()
sb.despine()
plt.show()
Production
Exemple
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("darkgrid", {'axes.axisbelow': False})
sinplot()
sb.despine()
plt.show()
Production
La taille de sortie du tracé réel est plus grande que celle des tracés ci-dessus.
Note - En raison de la mise à l'échelle des images sur notre page Web, vous pourriez manquer la
différence réelle dans nos graphiques d'exemple.
Paramètre
Le tableau suivant répertorie les paramètres de création de la palette de couleurs -
1 n_colors
Nombre de couleurs dans la palette. Si Aucun, la valeur par défaut dépendra de la façon dont la pale
den_colors est de 6 couleurs.
2 desat
Proportion pour désaturer chaque couleur.
Revenir
Return fait référence à la liste des tuples RVB. Voici les palettes Seaborn facilement disponibles -
Deep
Muted
Bright
Pastel
Dark
Colorblind
Outre ceux-ci, on peut également générer une nouvelle palette
Il est difficile de décider quelle palette utiliser pour un ensemble de données donné sans
connaître les caractéristiques des données. En étant conscient, nous classerons les différentes
manières d'utilisercolor_palette() types -
qualitative
sequential
diverging
Nous avons une autre fonction seaborn.palplot()qui traite des palettes de couleurs. Cette
fonction trace la palette de couleurs sous forme de tableau horizontal. Nous en saurons plus
surseaborn.palplot() dans les exemples à venir.
Production
Nous n'avons passé aucun paramètre dans color_palette();par défaut, nous voyons 6 couleurs.
Vous pouvez voir le nombre de couleurs souhaité en passant une valeur aun_colorsparamètre.
Ici lepalplot() est utilisé pour tracer le tableau de couleurs horizontalement.
Exemple
from matplotlib import pyplot as plt
import seaborn as sb
current_palette = sb.color_palette()
sb.palplot(sb.color_palette("Greens"))
plt.show()
Note −Nous devons ajouter «s» au paramètre comme «Verts» dans l'exemple ci-dessus.
Palette de couleurs divergentes
Les palettes divergentes utilisent deux couleurs différentes. Chaque couleur représente une
variation de la valeur allant d'un point commun dans les deux sens.
Supposons de tracer les données comprises entre -1 et 1. Les valeurs de -1 à 0 prennent une
couleur et 0 à +1 en prend une autre.
Par défaut, les valeurs sont centrées à partir de zéro. Vous pouvez le contrôler avec le centre des
paramètres en passant une valeur.
Exemple
from matplotlib import pyplot as plt
import seaborn as sb
current_palette = sb.color_palette()
sb.palplot(sb.color_palette("BrBG", 7))
plt.show()
Production
Exemple
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("white")
sb.set_palette("husl")
sinplot()
plt.show()
Production
Usage
seaborn.distplot()
Paramètres
Le tableau suivant répertorie les paramètres et leur description -
2 bins
Spécification des bacs hist
3 hist
booléen
4 kde
booléen
Seaborn - Histogramme
Les histogrammes représentent la distribution des données en formant des casiers le long de la
plage des données, puis en dessinant des barres pour montrer le nombre d'observations qui
tombent dans chaque casier.
Seaborn est livré avec quelques jeux de données et nous avons utilisé peu de jeux de données
dans nos chapitres précédents. Nous avons appris à charger l'ensemble de données et à
rechercher la liste des ensembles de données disponibles.
Seaborn est livré avec quelques jeux de données et nous avons utilisé peu de jeux de données
dans nos chapitres précédents. Nous avons appris à charger l'ensemble de données et à
rechercher la liste des ensembles de données disponibles.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.distplot(df['petal_length'],kde = False)
plt.show()
Production
Ici, kdel'indicateur est défini sur False. En conséquence, la représentation du tracé d'estimation
du noyau sera supprimée et seul l'histogramme sera tracé.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.distplot(df['petal_length'],hist=False)
plt.show()
Production
Ajustement de la distribution
paramétrique
distplot() est utilisé pour visualiser la distribution paramétrique d'un jeu de données.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.distplot(df['petal_length'])
plt.show()
Production
Nuage de points
Le nuage de points est le moyen le plus pratique de visualiser la distribution où chaque
observation est représentée dans un tracé bidimensionnel via les axes x et y.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.jointplot(x = 'petal_length',y = 'petal_width',data = df)
plt.show()
Production
La figure ci-dessus montre la relation entre les petal_length et petal_widthdans les données
Iris. Une tendance dans le graphique indique qu'il existe une corrélation positive entre les
variables à l'étude.
Tracé Hexbin
Le regroupement hexagonal est utilisé dans l'analyse de données bivariées lorsque la densité
des données est clairsemée, c'est-à-dire lorsque les données sont très dispersées et difficiles à
analyser à travers des nuages de points.
Un paramètre d'addition appelé «kind» et une valeur «hex» trace le tracé hexbin.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.jointplot(x = 'petal_length',y = 'petal_width',data = df,kind = 'hex')
plt.show()
Estimation de la densité du noyau
L'estimation de la densité par noyau est une manière non paramétrique d'estimer la distribution
d'une variable. Dans seaborn, nous pouvons tracer un kde en utilisantjointplot().
Passez la valeur 'kde' au paramètre kind pour tracer le tracé du noyau.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.jointplot(x = 'petal_length',y = 'petal_width',data = df,kind = 'hex')
plt.show()
Production
Haches
Dans cette section, nous allons apprendre ce que sont les axes, leur utilisation, leurs paramètres,
etc.
Usage
seaborn.pairplot(data,…)
Paramètres
Le tableau suivant répertorie les paramètres des axes -
N ° Sr. Paramètre et description
1 data
Trame de données
2 hue
Variable dans les données pour mapper les aspects du tracé à différentes couleurs.
3 palette
Ensemble de couleurs pour mapper la variable de teinte
4 kind
Genre d'intrigue pour les relations non identitaires. {'scatter', 'reg'}
5 diag_kind
Type de tracé pour les sous-tracés diagonaux. {'hist', 'kde'}
À l'exception des données, tous les autres paramètres sont facultatifs. Il y a peu d'autres
paramètres quipairplotPeut accepter. Les paramètres mentionnés ci-dessus sont souvent
utilisés.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.set_style("ticks")
sb.pairplot(df,hue = 'species',diag_kind = "kde",kind = "scatter",palette =
"husl")
plt.show()
Production
Nous pouvons observer les variations dans chaque parcelle. Les tracés sont au format matriciel
où le nom de ligne représente l'axe x et le nom de colonne représente l'axe y.
Les tracés diagonaux sont des tracés de densité de noyau où les autres tracés sont des
diagrammes de dispersion comme mentionné.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.stripplot(x = "species", y = "petal_length", data = df)
plt.show()
Production
Production
Parcelle d'essaim ()
Une autre option qui peut être utilisée comme alternative à 'Jitter' est la fonction swarmplot().
Cette fonction positionne chaque point du nuage de points sur l'axe catégoriel et évite ainsi le
chevauchement des points -
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.swarmplot(x = "species", y = "petal_length", data = df)
plt.show()
Production
Boîtes à moustaches
Boxplot est un moyen pratique de visualiser la distribution des données à travers leurs quartiles.
Les boîtes à moustaches ont généralement des lignes verticales s'étendant des boîtes qui sont
appelées moustaches. Ces moustaches indiquent une variabilité en dehors des quartiles
supérieur et inférieur, c'est pourquoi les boîtes à moustaches sont également appeléesbox-and-
whisker intrigue et box-and-whisker diagramme. Toutes les valeurs aberrantes dans les
données sont tracées sous forme de points individuels.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.swarmplot(x = "species", y = "petal_length", data = df)
plt.show()
Production
Parcelles de violon
Les graphiques de violon sont une combinaison de la boîte à moustaches et des estimations de
densité du noyau. Ainsi, ces graphiques sont plus faciles à analyser et à comprendre la
distribution des données.
Utilisons l'ensemble de données de conseils appelé pour en savoir plus sur les parcelles de
violon. Cet ensemble de données contient les informations relatives aux pourboires donnés par
les clients d'un restaurant.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill", data=df)
plt.show()
Production
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill",hue = 'sex', data = df)
plt.show()
Production
Maintenant, nous pouvons clairement voir le comportement de dépenses entre les hommes et les
femmes. On peut facilement dire que les hommes font plus de factures que les femmes en
regardant l'intrigue.
Et, si la variable de teinte n'a que deux classes, nous pouvons embellir l'intrigue en divisant
chaque violon en deux au lieu de deux violons un jour donné. Les deux parties du violon se
réfèrent à chaque classe dans la variable de teinte.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y="total_bill",hue = 'sex', data = df)
plt.show()
Production
Bar Plot
le barplot()montre la relation entre une variable catégorielle et une variable continue. Les
données sont représentées dans des barres rectangulaires où la longueur de la barre représente
la proportion des données dans cette catégorie.
Le graphique à barres représente l'estimation de la tendance centrale. Utilisons le jeu de
données «titanesque» pour apprendre les graphiques à barres.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('titanic')
sb.barplot(x = "sex", y = "survived", hue = "class", data = df)
plt.show()
Production
Dans l'exemple ci-dessus, nous pouvons voir que le nombre moyen de survivances des hommes
et des femmes dans chaque classe. À partir de l'intrigue, nous pouvons comprendre que plus de
femmes ont survécu que d'hommes. Chez les hommes et les femmes, un plus grand nombre de
survivants proviennent de la première classe.
Un cas particulier dans le barplot est de montrer le nombre d'observations dans chaque catégorie
plutôt que de calculer une statistique pour une deuxième variable. Pour cela, nous
utilisonscountplot().
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('titanic')
sb.countplot(x = " class ", data = df, palette = "Blues");
plt.show()
Production
Plot dit que, le nombre de passagers dans la troisième classe est plus élevé que dans la
première et la deuxième classe.
Tracés de points
Les tracés de points servent de même que les tracés à barres mais dans un style différent. Plutôt
que la barre entière, la valeur de l'estimation est représentée par le point à une certaine hauteur
sur l'autre axe.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('titanic')
sb.pointplot(x = "sex", y = "survived", hue = "class", data = df)
plt.show()
Production
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.boxplot(data = df, orient = "h")
plt.show()
Production
De plus, ces fonctions acceptent des vecteurs d'objets Pandas ou NumPy plutôt que des
variables dans un DataFrame.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.boxplot(data = df, orient = "h")
plt.show()
Production
Factorplot
Factorplot dessine un tracé catégoriel sur un FacetGrid. En utilisant le paramètre «kind», nous
pouvons choisir l'intrigue comme boxplot, violinplot, barplot et stripplot. FacetGrid utilise le
pointplot par défaut.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('exercise')
sb.factorplot(x = "time", y = pulse", hue = "kind",data = df);
plt.show()
Production
Nous pouvons utiliser différents graphiques pour visualiser les mêmes données en utilisant
le kind paramètre.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('exercise')
sb.factorplot(x = "time", y = "pulse", hue = "kind", kind = 'violin',data =
df);
plt.show()
Production
Dans factorplot, les données sont tracées sur une grille à facettes.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('exercise')
sb.factorplot(x = "time", y = "pulse", hue = "kind", kind = 'violin', col =
"diet", data = df);
plt.show()
Production
L'avantage d'utiliser Facet est que nous pouvons entrer une autre variable dans le graphique. Le
graphique ci-dessus est divisé en deux graphiques basés sur une troisième variable appelée
«régime» utilisant le paramètre «col».
Nous pouvons créer de nombreuses facettes de colonne et les aligner avec les lignes de la grille
-
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('titanic')
sb.factorplot("alive", col = "deck", col_wrap = 3,data =
df[df.deck.notnull()],kind = "count")
plt.show()
production
accepte les variables x et y dans une variété de formats, y compris des tableaux a des données comme paramèt
numpy simples, des objets de la série pandas ou comme références à des doivent être spécifiées sous for
variables dans un DataFrame pandas est appelé données «longues»
Exemple
Tracer le regplot puis lmplot avec les mêmes données dans cet exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.regplot(x = "total_bill", y = "tip", data = df)
sb.lmplot(x = "total_bill", y = "tip", data = df)
plt.show()
Production
Vous pouvez voir la différence de taille entre deux parcelles.
Nous pouvons également ajuster une régression linéaire lorsque l'une des variables prend des
valeurs discrètes
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.lmplot(x = "size", y = "tip", data = df)
plt.show()
Production
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x="x", y="y", data=df.query("dataset == 'I'"))
plt.show()
Dans ce cas, les données correspondent bien au modèle de régression linéaire avec moins de
variance.
Voyons un autre exemple où les données prennent un écart élevé, ce qui montre que la ligne de
meilleur ajustement n'est pas bonne.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x = "x", y = "y", data = df.query("dataset == 'II'"))
plt.show()
Production
Le graphique montre l'écart élevé des points de données par rapport à la droite de régression. Un
tel ordre supérieur non linéaire peut être visualisé en utilisant lelmplot() et regplot()Ils peuvent
s'adapter à un modèle de régression polynomiale pour explorer des types simples de tendances
non linéaires dans l'ensemble de données -
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x = "x", y = "y", data = df.query("dataset == 'II'"),order = 2)
plt.show()
Production
Production
Dans l'exemple ci-dessus, nous venons d'initialiser le facetgrid objet qui ne dessine rien dessus.
La principale approche pour visualiser les données sur cette grille consiste
à FacetGrid.map()méthode. Regardons la distribution des pointes dans chacun de ces sous-
ensembles, à l'aide d'un histogramme.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "time")
g.map(plt.hist, "tip")
plt.show()
Production
Le nombre de tracés est supérieur à un en raison du paramètre col. Nous avons discuté du
paramètre col dans nos chapitres précédents.
Pour créer un tracé relationnel, transmettez les noms de variables multiples.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "sex", hue = "smoker")
g.map(plt.scatter, "total_bill", "tip")
plt.show()
Production
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
g = sb.PairGrid(df)
g.map(plt.scatter);
plt.show()
Il est également possible de tracer une fonction différente sur la diagonale pour montrer la
distribution univariée de la variable dans chaque colonne.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
g = sb.PairGrid(df)
g.map_diag(plt.hist)
g.map_offdiag(plt.scatter);
plt.show()
Production
Nous pouvons personnaliser la couleur de ces graphiques en utilisant une autre variable
catégorielle. Par exemple, l'ensemble de données sur l'iris comporte quatre mesures pour
chacune des trois espèces différentes de fleurs d'iris afin que vous puissiez voir en quoi elles
diffèrent.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
g = sb.PairGrid(df)
g.map_diag(plt.hist)
g.map_offdiag(plt.scatter);
plt.show()
Production
Nous pouvons utiliser une fonction différente dans les triangles supérieur et inférieur pour voir
différents aspects de la relation.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
g = sb.PairGrid(df)
g.map_upper(plt.scatter)
g.map_lower(sb.kdeplot, cmap = "Blues_d")
g.map_diag(sb.kdeplot, lw = 3, legend = False);
plt.show()
Production
Seaborn Vs Matplotlib
On résume que si Matplotlib «essaie de rendre les choses faciles faciles et les choses difficiles
possibles», Seaborn essaie également de rendre facile un ensemble bien défini de choses
difficiles. »
Seaborn aide à résoudre les deux problèmes majeurs rencontrés par Matplotlib; les problèmes
sont -
Paramètres Matplotlib par défaut
Travailler avec des blocs de données
Comme Seaborn complimente et prolonge Matplotlib, la courbe d'apprentissage est assez
progressive. Si vous connaissez Matplotlib, vous êtes déjà à mi-chemin de Seaborn.
Dépendances
Considérez les dépendances suivantes de Seaborn -
Python 2.7 ou 3.4+
numpy
scipy
pandas
matplotlib
Dans ce chapitre, nous verrons comment importer des ensembles de données et des
bibliothèques. Commençons par comprendre comment importer des bibliothèques.
Importation de bibliothèques
Commençons par importer Pandas, qui est une excellente bibliothèque pour gérer des
ensembles de données relationnelles (au format table). Seaborn est pratique lorsqu'il s'agit de
DataFrames, qui est la structure de données la plus largement utilisée pour l'analyse des
données.
La commande suivante vous aidera à importer des Pandas -
Maintenant, importons la bibliothèque Matplotlib, qui nous aide à personnaliser nos graphiques.
load_dataset()
Pour afficher tous les ensembles de données disponibles dans la bibliothèque Seaborn, vous
pouvez utiliser la commande suivante avec le get_dataset_names() fonction comme indiqué ci-
dessous -
import seaborn as sb
print sb.get_dataset_names()
La ligne de code ci-dessus renverra la liste des ensembles de données disponibles comme sortie
suivante
Exemple
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
sinplot()
plt.show()
Voici à quoi ressemble un tracé avec les valeurs par défaut Matplotlib -
Pour changer le même tracé en valeurs par défaut Seaborn, utilisez le set() fonction -
Exemple
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set()
sinplot()
plt.show()
Production
Les deux figures ci-dessus montrent la différence entre les graphiques par défaut de Matplotlib et
de Seaborn. La représentation des données est la même, mais le style de représentation varie
dans les deux.
Fondamentalement, Seaborn divise les paramètres de Matplotlib en deux groupes -
Styles de tracé
Échelle de tracé
Exemple
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("whitegrid")
sinplot()
plt.show()
Production
Exemple
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("white")
sinplot()
sb.despine()
plt.show()
Production
Dans les graphiques réguliers, nous utilisons uniquement les axes gauche et inférieur. En
utilisant ledespine() fonction, nous pouvons éviter les épines inutiles des axes droit et supérieur,
ce qui n'est pas pris en charge dans Matplotlib.
Exemple
import seaborn as sb
print sb.axes_style
Production
{'axes.axisbelow' : False,
'axes.edgecolor' : 'white',
'axes.facecolor' : '#EAEAF2',
'axes.grid' : True,
'axes.labelcolor' : '.15',
'axes.linewidth' : 0.0,
'figure.facecolor' : 'white',
'font.family' : [u'sans-serif'],
'font.sans-serif' : [u'Arial', u'Liberation
Sans', u'Bitstream Vera Sans', u'sans-serif'],
'grid.color' : 'white',
'grid.linestyle' : u'-',
'image.cmap' : u'Greys',
'legend.frameon' : False,
'legend.numpoints' : 1,
'legend.scatterpoints': 1,
'lines.solid_capstyle': u'round',
'text.color' : '.15',
'xtick.color' : '.15',
'xtick.direction' : u'out',
'xtick.major.size' : 0.0,
'xtick.minor.size' : 0.0,
'ytick.color' : '.15',
'ytick.direction' : u'out',
'ytick.major.size' : 0.0,
'ytick.minor.size' : 0.0}
Exemple
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("darkgrid", {'axes.axisbelow': False})
sinplot()
sb.despine()
plt.show()
Production
Exemple
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("darkgrid", {'axes.axisbelow': False})
sinplot()
sb.despine()
plt.show()
Production
La taille de sortie du tracé réel est plus grande que celle des tracés ci-dessus.
Note - En raison de la mise à l'échelle des images sur notre page Web, vous pourriez manquer la
différence réelle dans nos graphiques d'exemple.
La couleur joue un rôle important que tout autre aspect dans les visualisations. Lorsqu'elle est
utilisée efficacement, la couleur ajoute plus de valeur au tracé. Une palette signifie une surface
plane sur laquelle un peintre dispose et mélange les peintures.
Paramètre
Le tableau suivant répertorie les paramètres de création de la palette de couleurs -
1 n_colors
Nombre de couleurs dans la palette. Si Aucun, la valeur par défaut dépendra de la façon dont la pale
den_colors est de 6 couleurs.
2 desat
Proportion pour désaturer chaque couleur.
Revenir
Return fait référence à la liste des tuples RVB. Voici les palettes Seaborn facilement disponibles -
Deep
Muted
Bright
Pastel
Dark
Colorblind
Outre ceux-ci, on peut également générer une nouvelle palette
Il est difficile de décider quelle palette utiliser pour un ensemble de données donné sans
connaître les caractéristiques des données. En étant conscient, nous classerons les différentes
manières d'utilisercolor_palette() types -
qualitative
sequential
diverging
Nous avons une autre fonction seaborn.palplot()qui traite des palettes de couleurs. Cette
fonction trace la palette de couleurs sous forme de tableau horizontal. Nous en saurons plus
surseaborn.palplot() dans les exemples à venir.
Production
Nous n'avons passé aucun paramètre dans color_palette();par défaut, nous voyons 6 couleurs.
Vous pouvez voir le nombre de couleurs souhaité en passant une valeur aun_colorsparamètre.
Ici lepalplot() est utilisé pour tracer le tableau de couleurs horizontalement.
Exemple
from matplotlib import pyplot as plt
import seaborn as sb
current_palette = sb.color_palette()
sb.palplot(sb.color_palette("Greens"))
plt.show()
Note −Nous devons ajouter «s» au paramètre comme «Verts» dans l'exemple ci-dessus.
Palette de couleurs divergentes
Les palettes divergentes utilisent deux couleurs différentes. Chaque couleur représente une
variation de la valeur allant d'un point commun dans les deux sens.
Supposons de tracer les données comprises entre -1 et 1. Les valeurs de -1 à 0 prennent une
couleur et 0 à +1 en prend une autre.
Par défaut, les valeurs sont centrées à partir de zéro. Vous pouvez le contrôler avec le centre des
paramètres en passant une valeur.
Exemple
from matplotlib import pyplot as plt
import seaborn as sb
current_palette = sb.color_palette()
sb.palplot(sb.color_palette("BrBG", 7))
plt.show()
Production
Exemple
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("white")
sb.set_palette("husl")
sinplot()
plt.show()
Production
Usage
seaborn.distplot()
Paramètres
Le tableau suivant répertorie les paramètres et leur description -
2 bins
Spécification des bacs hist
3 hist
booléen
4 kde
booléen
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.distplot(df['petal_length'],kde = False)
plt.show()
Production
Ici, kdel'indicateur est défini sur False. En conséquence, la représentation du tracé d'estimation
du noyau sera supprimée et seul l'histogramme sera tracé.
L'estimation de densité de noyau (KDE) est un moyen d'estimer la fonction de densité de
probabilité d'une variable aléatoire continue. Il est utilisé pour l'analyse non paramétrique.
Réglage du hist flag à False in distplot donnera le tracé d'estimation de la densité du noyau.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.distplot(df['petal_length'],hist=False)
plt.show()
Production
Ajustement de la distribution
paramétrique
distplot() est utilisé pour visualiser la distribution paramétrique d'un jeu de données.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.distplot(df['petal_length'])
plt.show()
Production
Nuage de points
Le nuage de points est le moyen le plus pratique de visualiser la distribution où chaque
observation est représentée dans un tracé bidimensionnel via les axes x et y.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.jointplot(x = 'petal_length',y = 'petal_width',data = df)
plt.show()
Production
La figure ci-dessus montre la relation entre les petal_length et petal_widthdans les données
Iris. Une tendance dans le graphique indique qu'il existe une corrélation positive entre les
variables à l'étude.
Tracé Hexbin
Le regroupement hexagonal est utilisé dans l'analyse de données bivariées lorsque la densité
des données est clairsemée, c'est-à-dire lorsque les données sont très dispersées et difficiles à
analyser à travers des nuages de points.
Un paramètre d'addition appelé «kind» et une valeur «hex» trace le tracé hexbin.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.jointplot(x = 'petal_length',y = 'petal_width',data = df,kind = 'hex')
plt.show()
Estimation de la densité du noyau
L'estimation de la densité par noyau est une manière non paramétrique d'estimer la distribution
d'une variable. Dans seaborn, nous pouvons tracer un kde en utilisantjointplot().
Passez la valeur 'kde' au paramètre kind pour tracer le tracé du noyau.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.jointplot(x = 'petal_length',y = 'petal_width',data = df,kind = 'hex')
plt.show()
Production
Les ensembles de données étudiés en temps réel contiennent de nombreuses variables. Dans
de tels cas, la relation entre chaque variable doit être analysée. Tracer une distribution bivariée
pour (n, 2) combinaisons sera un processus très complexe et prenant du temps.
Pour tracer plusieurs distributions bivariées par paires dans un jeu de données, vous pouvez
utiliser pairplot()fonction. Cela montre la relation pour (n, 2) combinaison de variable dans un
DataFrame sous forme de matrice de tracés et les tracés diagonaux sont les tracés univariés.
Haches
Dans cette section, nous allons apprendre ce que sont les axes, leur utilisation, leurs paramètres,
etc.
Usage
seaborn.pairplot(data,…)
Paramètres
Le tableau suivant répertorie les paramètres des axes -
2 hue
Variable dans les données pour mapper les aspects du tracé à différentes couleurs.
3 palette
Ensemble de couleurs pour mapper la variable de teinte
4 kind
Genre d'intrigue pour les relations non identitaires. {'scatter', 'reg'}
5 diag_kind
Type de tracé pour les sous-tracés diagonaux. {'hist', 'kde'}
À l'exception des données, tous les autres paramètres sont facultatifs. Il y a peu d'autres
paramètres quipairplotPeut accepter. Les paramètres mentionnés ci-dessus sont souvent
utilisés.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.set_style("ticks")
sb.pairplot(df,hue = 'species',diag_kind = "kde",kind = "scatter",palette =
"husl")
plt.show()
Production
Nous pouvons observer les variations dans chaque parcelle. Les tracés sont au format matriciel
où le nom de ligne représente l'axe x et le nom de colonne représente l'axe y.
Les tracés diagonaux sont des tracés de densité de noyau où les autres tracés sont des
diagrammes de dispersion comme mentionné.
Dans nos chapitres précédents, nous avons découvert les nuages de points, les graphiques
hexbin et les graphiques kde qui sont utilisés pour analyser les variables continues étudiées. Ces
graphiques ne conviennent pas lorsque la variable à l'étude est catégorique.
Quand une ou les deux variables à l'étude sont catégoriques, nous utilisons des graphiques
comme striplot (), swarmplot (), etc. Seaborn fournit une interface pour ce faire.
stripplot ()
stripplot () est utilisé lorsque l'une des variables étudiées est catégorique. Il représente les
données dans l'ordre trié le long de l'un des axes.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.stripplot(x = "species", y = "petal_length", data = df)
plt.show()
Production
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.stripplot(x = "species", y = "petal_length", data = df, jitter = Ture)
plt.show()
Production
Parcelle d'essaim ()
Une autre option qui peut être utilisée comme alternative à 'Jitter' est la fonction swarmplot().
Cette fonction positionne chaque point du nuage de points sur l'axe catégoriel et évite ainsi le
chevauchement des points -
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.swarmplot(x = "species", y = "petal_length", data = df)
plt.show()
Production
Dans les nuages de points catégoriels que nous avons traités dans le chapitre précédent,
l'approche devient limitée dans les informations qu'elle peut fournir sur la distribution des valeurs
au sein de chaque catégorie. Maintenant, en allant plus loin, voyons ce qui peut nous faciliter la
comparaison avec les catégories.
Boîtes à moustaches
Boxplot est un moyen pratique de visualiser la distribution des données à travers leurs quartiles.
Les boîtes à moustaches ont généralement des lignes verticales s'étendant des boîtes qui sont
appelées moustaches. Ces moustaches indiquent une variabilité en dehors des quartiles
supérieur et inférieur, c'est pourquoi les boîtes à moustaches sont également appeléesbox-and-
whisker intrigue et box-and-whisker diagramme. Toutes les valeurs aberrantes dans les
données sont tracées sous forme de points individuels.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.swarmplot(x = "species", y = "petal_length", data = df)
plt.show()
Production
Parcelles de violon
Les graphiques de violon sont une combinaison de la boîte à moustaches et des estimations de
densité du noyau. Ainsi, ces graphiques sont plus faciles à analyser et à comprendre la
distribution des données.
Utilisons l'ensemble de données de conseils appelé pour en savoir plus sur les parcelles de
violon. Cet ensemble de données contient les informations relatives aux pourboires donnés par
les clients d'un restaurant.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill", data=df)
plt.show()
Production
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill",hue = 'sex', data = df)
plt.show()
Production
Maintenant, nous pouvons clairement voir le comportement de dépenses entre les hommes et les
femmes. On peut facilement dire que les hommes font plus de factures que les femmes en
regardant l'intrigue.
Et, si la variable de teinte n'a que deux classes, nous pouvons embellir l'intrigue en divisant
chaque violon en deux au lieu de deux violons un jour donné. Les deux parties du violon se
réfèrent à chaque classe dans la variable de teinte.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y="total_bill",hue = 'sex', data = df)
plt.show()
Production
Dans la plupart des situations, nous traitons des estimations de l'ensemble de la distribution des
données. Mais quand il s'agit d'estimer la tendance centrale, nous avons besoin d'une manière
spécifique de résumer la distribution. La moyenne et la médiane sont les techniques très souvent
utilisées pour estimer la tendance centrale de la distribution.
Dans toutes les parcelles que nous avons apprises dans la section ci-dessus, nous avons fait la
visualisation de l'ensemble de la distribution. Parlons maintenant des parcelles avec lesquelles
nous pouvons estimer la tendance centrale de la distribution.
Bar Plot
le barplot()montre la relation entre une variable catégorielle et une variable continue. Les
données sont représentées dans des barres rectangulaires où la longueur de la barre représente
la proportion des données dans cette catégorie.
Le graphique à barres représente l'estimation de la tendance centrale. Utilisons le jeu de
données «titanesque» pour apprendre les graphiques à barres.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('titanic')
sb.barplot(x = "sex", y = "survived", hue = "class", data = df)
plt.show()
Production
Dans l'exemple ci-dessus, nous pouvons voir que le nombre moyen de survivances des hommes
et des femmes dans chaque classe. À partir de l'intrigue, nous pouvons comprendre que plus de
femmes ont survécu que d'hommes. Chez les hommes et les femmes, un plus grand nombre de
survivants proviennent de la première classe.
Un cas particulier dans le barplot est de montrer le nombre d'observations dans chaque catégorie
plutôt que de calculer une statistique pour une deuxième variable. Pour cela, nous
utilisonscountplot().
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('titanic')
sb.countplot(x = " class ", data = df, palette = "Blues");
plt.show()
Production
Plot dit que, le nombre de passagers dans la troisième classe est plus élevé que dans la
première et la deuxième classe.
Tracés de points
Les tracés de points servent de même que les tracés à barres mais dans un style différent. Plutôt
que la barre entière, la valeur de l'estimation est représentée par le point à une certaine hauteur
sur l'autre axe.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('titanic')
sb.pointplot(x = "sex", y = "survived", hue = "class", data = df)
plt.show()
Production
Il est toujours préférable d'utiliser des ensembles de données «depuis longtemps» ou «rangés».
Mais parfois, lorsque nous n'avons aucune option plutôt que d'utiliser un ensemble de données
«grand format», les mêmes fonctions peuvent également être appliquées aux données «grand
format» dans une variété de formats, y compris les cadres de données Pandas ou NumPy
bidimensionnel tableaux. Ces objets doivent être passés directement au paramètre de données
les variables x et y doivent être spécifiées sous forme de chaînes
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.boxplot(data = df, orient = "h")
plt.show()
Production
De plus, ces fonctions acceptent des vecteurs d'objets Pandas ou NumPy plutôt que des
variables dans un DataFrame.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.boxplot(data = df, orient = "h")
plt.show()
Production
Factorplot
Factorplot dessine un tracé catégoriel sur un FacetGrid. En utilisant le paramètre «kind», nous
pouvons choisir l'intrigue comme boxplot, violinplot, barplot et stripplot. FacetGrid utilise le
pointplot par défaut.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('exercise')
sb.factorplot(x = "time", y = pulse", hue = "kind",data = df);
plt.show()
Production
Nous pouvons utiliser différents graphiques pour visualiser les mêmes données en utilisant
le kind paramètre.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('exercise')
sb.factorplot(x = "time", y = "pulse", hue = "kind", kind = 'violin',data =
df);
plt.show()
Production
Dans factorplot, les données sont tracées sur une grille à facettes.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('exercise')
sb.factorplot(x = "time", y = "pulse", hue = "kind", kind = 'violin', col =
"diet", data = df);
plt.show()
Production
L'avantage d'utiliser Facet est que nous pouvons entrer une autre variable dans le graphique. Le
graphique ci-dessus est divisé en deux graphiques basés sur une troisième variable appelée
«régime» utilisant le paramètre «col».
Nous pouvons créer de nombreuses facettes de colonne et les aligner avec les lignes de la grille
-
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('titanic')
sb.factorplot("alive", col = "deck", col_wrap = 3,data =
df[df.deck.notnull()],kind = "count")
plt.show()
production
La plupart du temps, nous utilisons des ensembles de données contenant plusieurs variables
quantitatives, et le but d'une analyse est souvent de relier ces variables entre elles. Cela peut
être fait à travers les lignes de régression.
Lors de la construction des modèles de régression, nous vérifions souvent multicollinearity,où
nous devions voir la corrélation entre toutes les combinaisons de variables continues et
prendrons les mesures nécessaires pour supprimer la multicolinéarité si elle existe. Dans de tels
cas, les techniques suivantes sont utiles.
regplot vs lmplot
regplot lmplot
accepte les variables x et y dans une variété de formats, y compris des tableaux a des données comme paramèt
numpy simples, des objets de la série pandas ou comme références à des doivent être spécifiées sous for
variables dans un DataFrame pandas est appelé données «longues»
Exemple
Tracer le regplot puis lmplot avec les mêmes données dans cet exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.regplot(x = "total_bill", y = "tip", data = df)
sb.lmplot(x = "total_bill", y = "tip", data = df)
plt.show()
Production
Vous pouvez voir la différence de taille entre deux parcelles.
Nous pouvons également ajuster une régression linéaire lorsque l'une des variables prend des
valeurs discrètes
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.lmplot(x = "size", y = "tip", data = df)
plt.show()
Production
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x="x", y="y", data=df.query("dataset == 'I'"))
plt.show()
Dans ce cas, les données correspondent bien au modèle de régression linéaire avec moins de
variance.
Voyons un autre exemple où les données prennent un écart élevé, ce qui montre que la ligne de
meilleur ajustement n'est pas bonne.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x = "x", y = "y", data = df.query("dataset == 'II'"))
plt.show()
Production
Le graphique montre l'écart élevé des points de données par rapport à la droite de régression. Un
tel ordre supérieur non linéaire peut être visualisé en utilisant lelmplot() et regplot()Ils peuvent
s'adapter à un modèle de régression polynomiale pour explorer des types simples de tendances
non linéaires dans l'ensemble de données -
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x = "x", y = "y", data = df.query("dataset == 'II'"),order = 2)
plt.show()
Production
Une approche utile pour explorer des données de dimension moyenne consiste à dessiner
plusieurs instances du même graphique sur différents sous-ensembles de votre ensemble de
données.
Cette technique est communément appelée «tracé en treillis» ou «trellis», et elle est liée à l'idée
de «petits multiples».
Pour utiliser ces fonctionnalités, vos données doivent se trouver dans un Pandas DataFrame.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "time")
plt.show()
Production
Dans l'exemple ci-dessus, nous venons d'initialiser le facetgrid objet qui ne dessine rien sur eux.
La principale approche pour visualiser les données sur cette grille consiste
à FacetGrid.map()méthode. Regardons la distribution des pointes dans chacun de ces sous-
ensembles, à l'aide d'un histogramme.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "time")
g.map(plt.hist, "tip")
plt.show()
Production
Le nombre de tracés est supérieur à un en raison du paramètre col. Nous avons discuté du
paramètre col dans nos chapitres précédents.
Pour créer un tracé relationnel, transmettez les noms de variables multiples.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "sex", hue = "smoker")
g.map(plt.scatter, "total_bill", "tip")
plt.show()
Production
PairGrid nous permet de dessiner une grille de sous-tracés en utilisant le même type de tracé
pour visualiser les données.
Contrairement à FacetGrid, il utilise différentes paires de variables pour chaque sous-tracé. Il
forme une matrice de sous-parcelles. Elle est aussi parfois appelée «matrice de nuage de
points».
L'utilisation de pairgrid est similaire à facetgrid. Initialisez d'abord la grille, puis passez la fonction
de traçage.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
g = sb.PairGrid(df)
g.map(plt.scatter);
plt.show()
Il est également possible de tracer une fonction différente sur la diagonale pour montrer la
distribution univariée de la variable dans chaque colonne.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
g = sb.PairGrid(df)
g.map_diag(plt.hist)
g.map_offdiag(plt.scatter);
plt.show()
Production
Nous pouvons personnaliser la couleur de ces graphiques en utilisant une autre variable
catégorielle. Par exemple, l'ensemble de données sur l'iris comporte quatre mesures pour
chacune des trois espèces différentes de fleurs d'iris afin que vous puissiez voir en quoi elles
diffèrent.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
g = sb.PairGrid(df)
g.map_diag(plt.hist)
g.map_offdiag(plt.scatter);
plt.show()
Production
Nous pouvons utiliser une fonction différente dans les triangles supérieur et inférieur pour voir
différents aspects de la relation.
Exemple
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
g = sb.PairGrid(df)
g.map_upper(plt.scatter)
g.map_lower(sb.kdeplot, cmap = "Blues_d")
g.map_diag(sb.kdeplot, lw = 3, legend = False);
plt.show()
Production