Maison >développement back-end >Tutoriel Python >Comment créer des nuages ​​de points catégoriels avec des symboles distincts en Python ?

Comment créer des nuages ​​de points catégoriels avec des symboles distincts en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-18 05:22:02835parcourir

How to Create Categorical Scatter Plots with Distinct Symbols in Python?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn