Utilisation de Plot pour les nuages de points catégoriels
Dans ce guide, nous visons à résoudre un problème courant lors de la création de nuages de points en Python à l'aide de Pandas et matplotlib. Plus précisément, nous explorerons comment attribuer des symboles spécifiques à différentes catégories au sein des données.
Le problème
Étant donné un DataFrame Pandas avec plusieurs colonnes, l'objectif est de créer un nuage de points où deux variables sont tracées le long des axes x et y, tandis qu'une troisième colonne détermine les symboles utilisés pour représenter les données points.
La solution : utiliser Plot
Bien que scatter puisse être utilisé pour cette tâche, il nécessite des valeurs numériques pour les catégories, ce qui limite son efficacité. Une meilleure approche consiste à utiliser la fonction plot pour les catégories discrètes.
L'exemple de code suivant montre comment mettre en œuvre cette approche :
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()
Pour un résultat visuellement attrayant, vous pouvez personnaliser le tracé en utilisant le style matplotlib disponible dans le module de traçage de Pandas :
plt.rcParams.update(pd.tools.plotting.mpl_stylesheet) colors = pd.tools.plotting._get_standard_colors(len(groups), color_type='random') # ... (the rest of the code remains the same)
Cela vous donnera un nuage de points où chaque catégorie est représentée par une couleur distincte et symbole.
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!