Tracer un nuage de points regroupé par catégorie en Python
Problème :
Chez Pandas, comment créer un nuage de points avec des marqueurs représentant des données triées en catégories définies par un tiers colonne ?
Solution :
Pour créer efficacement un nuage de points regroupé par catégorie, utilisez la fonction plot au lieu de scatter. En effet, plot interprète les valeurs de la troisième colonne comme des catégories plutôt que comme des valeurs numériques.
Voici une solution étape par étape utilisant plot :
Par exemple :
import matplotlib.pyplot as plt import numpy as np import pandas as pd np.random.seed(1974) # Generate Data num = 20 x, y = np.random.random((2, num)) labels = np.random.choice(['a', 'b', 'c'], num) df = pd.DataFrame(dict(x=x, y=y, label=labels)) groups = df.groupby('label') # Plot fig, ax = plt.subplots() ax.margins(0.05) for name, group in groups: ax.plot(group.x, group.y, marker='o', linestyle='', ms=12, label=name) ax.legend() plt.show()
Cela produira un nuage de points avec des marqueurs classés par valeurs dans la colonne « étiquette » et un légende qui identifie les catégories.
De plus, vous pouvez personnaliser l'apparence du tracé en ajustant le paramètre ax.margins(), en définissant la taille du marqueur (ms) et en spécifiant une palette de couleurs pour les marqueurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!