Seaborn - Représentation des données catégorielles
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.
Nuage de points catégoriels
Dans cette section, nous en apprendrons davantage sur les nuages de points catégoriels.
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
Dans le graphique ci-dessus, nous pouvons clairement voir la différence de petal_lengthdans chaque espèce. Mais le problème majeur avec le nuage de points ci-dessus est que les points du nuage de points se chevauchent. Nous utilisons le paramètre 'Jitter' pour gérer ce type de scénario.
Jitter ajoute du bruit aléatoire aux données. Ce paramètre ajustera les positions le long de l'axe des catégories.
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
Désormais, la répartition des points est facilement visible.
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()