HOWTO · Seaborn

Définir la taille des marqueurs dans les nuages de points Seaborn

Découvrez comment définir une aire de marqueur fixe avec `s`, la faire varier selon une variable numérique ou utiliser `size` et `sizes` de Seaborn pour créer une échelle et une légende.

Sur cette page

Pour garder la même taille de marqueur dans tout un nuage de points Seaborn, passez s à sns.scatterplot ; cette option utilise les unités d’aire de scatter dans Matplotlib (points carrés). Pour faire varier l’aire des marqueurs selon les données, passez un tableau numérique à s. Pour confier à Seaborn la mise en correspondance et la légende, utilisez size pour la variable de données et sizes pour la plage d’affichage.

Méthode 1 : utiliser le paramètre s dans scatterplot

Utilisez s lorsque tous les points doivent avoir la même aire de marqueur. Cette valeur est une aire en points carrés : la doubler ne double donc pas la largeur du marqueur. Augmentez ou réduisez-la jusqu’à ce que les points soient lisibles sans se masquer les uns les autres.

Exécutez cet exemple :

import matplotlib.pyplot as plt
import seaborn as sns

x = [1, 2, 3, 4]
y = [2, 3, 2, 5]
area = 64

sns.scatterplot(x=x, y=y, s=area, color="teal", marker="o")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Fixed marker area")
print(f"Marker area: {area} pt^2")
plt.close()
Marker area: 64 pt^2

Dans cet exemple, le titre anglais « Fixed marker area » indique que l’aire des marqueurs est fixe. Le libellé de sortie, également en anglais (« Marker area »), accompagne la valeur imprimée et précise l’aire utilisée, exprimée en points carrés.

La valeur fixe de s s’applique à tous les points de cet appel. Ajoutez une correspondance hue si la couleur doit distinguer des groupes ; elle est indépendante de l’aire des marqueurs.

Méthode 2 : ajuster la taille des marqueurs à l’aide d’une variable

Pour que l’aire de chaque marqueur représente une colonne numérique, passez une valeur numérique par ligne à s. Comme ces valeurs sont des aires, ramenez la colonne à une plage utile au lieu d’utiliser aveuglément les mesures brutes. Par exemple, avec un DataFrame nommé data, s=data["party_size"] * 20 fournit une aire par ligne ; ajustez le multiplicateur selon vos données et la taille de la figure. Veillez à ce que les valeurs de x, y et de taille restent alignées par ligne.

Utilisez également hue="day" si la couleur doit représenter une variable catégorielle distincte. Les valeurs de taille doivent rester numériques ; la catégorisation se fait avec hue, et non en la multipliant dans s.

Méthode 3 : personnaliser la taille des marqueurs avec des paramètres supplémentaires

Utilisez la sémantique size de Seaborn lorsque vous souhaitez que Seaborn associe une variable de données à la taille des marqueurs et crée la légende correspondante. Par exemple, avec un DataFrame nommé data, appelez sns.scatterplot(data=data, x="total_bill", y="tip", size="size", sizes=(30, 180)). Ici, size désigne la colonne à associer, tandis que sizes définit les aires minimale et maximale des marqueurs en points carrés. Les valeurs numériques sont mises à l’échelle dans cette plage ; une variable de taille catégorielle est représentée par des niveaux distincts.

Vous pouvez combiner size avec hue pour distinguer les groupes par couleur et avec style pour varier la forme des marqueurs. Utilisez palette pour choisir les couleurs d’une correspondance hue, ou color pour appliquer une seule couleur lorsqu’aucune correspondance hue n’est nécessaire. Définissez marker pour choisir une forme commune. Ces options peuvent aider à distinguer les groupes ; limitez toutefois le nombre de codages visuels afin que la légende des tailles reste lisible.

Conclusion

Choisissez s pour une aire de marqueur fixe ou un tableau numérique d’aires, une par point. Choisissez size et sizes de Seaborn pour associer la taille aux données, avec une légende dédiée et une plage contrôlée. Gardez à l’esprit que la taille du marqueur désigne une aire, puis ajustez les valeurs pour que les points restent lisibles dans la figure finale.

FAQ

  1. Comment modifier la taille par défaut des marqueurs dans Seaborn ? Passez une aire avec s à sns.scatterplot, par exemple s=64, pour donner la même taille à tous les points.

  2. Peut-on avoir des points de tailles différentes dans un même nuage ? Oui. Passez à s un tableau numérique contenant une valeur par ligne, ou utilisez size avec sizes pour obtenir l’échelle et la légende gérées par Seaborn.

  3. À quoi sert hue ? Cette option associe une variable à la couleur, souvent pour distinguer des catégories. Elle est indépendante de la correspondance de taille des marqueurs.

  4. Comment rendre le graphique plus lisible ? Ajustez la plage des aires, n’utilisez des couleurs distinctes ou des styles de marqueurs différents que s’ils représentent des groupes utiles, et nommez les axes. Si les points se chevauchent, réduisez leur taille ou ajoutez de la transparence.

  5. Comment enregistrer un nuage de points Seaborn ? Enregistrez la figure Matplotlib avant de l’afficher ou de la fermer. Par exemple, après avoir créé le graphique, utilisez plt.savefig("scatterplot.png", dpi=150, bbox_inches="tight").