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
Mary-Kate Olsenoriginal
2024-11-19 13:05:03274parcourir

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

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!

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