Maison > développement back-end > Tutoriel Python > Comment créer un nuage de points avec des marqueurs différenciés par catégorie dans un Pandas DataFrame ?

Comment créer un nuage de points avec des marqueurs différenciés par catégorie dans un Pandas DataFrame ?

Mary-Kate Olsen
Libérer: 2024-11-19 13:05:03
original
265 Les gens l'ont consulté

How to create a scatter plot with markers differentiated by category in a Pandas DataFrame?

Comment créer un nuage de points par catégorie à l'aide de Pandas DataFrame

Question :

Comment puis-je créer efficacement un nuage de points tracer à l'aide d'un Pandas DataFrame, où les marqueurs sont dictés par une troisième colonne dans le DataFrame ?

Réponse :

Utiliser matplotlib.pyplot.scatter() pour différencier les marqueurs par catégorie peut être inefficace. Pensez plutôt à utiliser matplotlib.pyplot.plot() pour les catégories discrètes :

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

# 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))

# Group by labels
groups = df.groupby('label')

# Plot
fig, ax = plt.subplots()
ax.margins(0.05)  # Optional padding

# Use different markers and colors for each group
for name, group in groups:
    ax.plot(group.x, group.y, marker='o', linestyle='', ms=12, label=name)
ax.legend()

# Specify custom colors and styles
plt.rcParams.update(pd.tools.plotting.mpl_stylesheet)
colors = pd.tools.plotting._get_standard_colors(len(groups), color_type='random')
ax.set_color_cycle(colors)
ax.legend(numpoints=1, loc='upper left')

plt.show()
Copier après la connexion

Ce code génère un nuage de points avec des marqueurs codés par couleur par catégorie.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal