Nuée marine
Un nuage de points est l’un des graphiques les plus basiques et les plus utiles utilisés. Le module Seaborn de Python peut aller plus loin avec ces graphiques et les utiliser pour représenter des valeurs catégorielles.
Un diagramme en essaim est un type de diagramme de dispersion utilisé pour représenter des valeurs catégorielles. Il est très similaire au strip plot, mais il évite le chevauchement des points. Nous pouvons utiliser le seaborn.swarmplot()
pour créer de tels graphes.
Il n’est pas conseillé d’utiliser ce type de graphique lorsque la taille de l’échantillon est importante.
Nous utiliserons la fonction swarmplot()
pour créer un tel graphique pour les valeurs catégorielles dans le code suivant.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{
"Quantity": [5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8],
"Price": [9, 10, 15, 16, 13, 14, 15, 18, 11, 12, 14, 15, 16, 17, 18, 19],
"Day": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2],
"Product": [
"A",
"A",
"A",
"A",
"B",
"B",
"B",
"B",
"A",
"A",
"A",
"A",
"B",
"B",
"B",
"B",
],
}
)
sns.swarmplot(data=df, y="Price", x="Quantity")
Dans l’exemple ci-dessus, nous pouvons ajouter le paramètre hue
à la fonction swarmplot()
et séparer les catégories pour les deux produits différents. Nous pouvons séparer les deux produits en utilisant l’argument dodge
et en le définissant sur True.
De plus, nous pouvons également utiliser d’autres arguments avec la fonction swarmplot()
. La taille et la couleur des points peuvent être modifiées à l’aide des arguments size
et color
. Nous pouvons modifier la combinaison de couleurs utilisée pour les différentes catégories à l’aide du paramètre palette
. L’argument linewidth
ajoute une bordure aux points de la largeur spécifiée. L’ordre des catégories tracées peut être contrôlé à l’aide du paramètre order
.
Nous allons essayer d’utiliser les arguments ci-dessus dans l’exemple suivant.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{
"Quantity": [5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8],
"Price": [9, 10, 15, 16, 13, 14, 15, 18, 11, 12, 14, 15, 16, 17, 18, 19],
"Day": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2],
"Product": [
"A",
"A",
"A",
"A",
"B",
"B",
"B",
"B",
"A",
"A",
"A",
"A",
"B",
"B",
"B",
"B",
],
}
)
sns.swarmplot(
data=df,
y="Price",
x="Quantity",
hue="Product",
dodge=True,
linewidth=2.5,
palette="Set2",
size=10,
)
Le swarmplot()
peut également être utilisé comme un bon complément à une boîte ou à un violon. Cela donne une bonne idée de la répartition des données.
Nous pouvons ajouter une boîte à moustaches sur le diagramme en essaim en utilisant le code suivant.
import random
import numpy as np
import seaborn as sns
n = random.sample(range(0, 50), 30)
arr = np.array(n)
sns.boxplot(n)
sns.swarmplot(n, color="red")
La fonction catplot()
peut également créer un tel diagramme en essaim. Pour cela, nous devons spécifier la valeur du paramètre kind
dans la fonction catplot()
comme swarm
.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn