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!