Graphiques à nuages de points de codage couleur par valeurs de colonne en Python
Dans la visualisation de données, l'attribution de couleurs à différentes catégories peut améliorer la clarté et révéler des motifs. Cette fonctionnalité est facilement disponible dans ggplot2 pour R, mais comment pouvons-nous obtenir la même chose en Python en utilisant pandas et matplotlib ?
Mise à jour : Seaborn Enhancements
Depuis la réponse originale , Seaborn est devenu une bibliothèque puissante pour créer des intrigues informatives et visuellement attrayantes. Ses mises à jour récentes offrent des fonctions pratiques pour colorer les nuages de points en fonction des valeurs de colonne :
Approche originale de Pandas et Matplotlib
Pour ceux qui recherchent une approche directe avec Matplotlib, voici une fonction personnalisée qui attribue des couleurs vers des points basés sur une colonne catégorielle :
import matplotlib.pyplot as plt
import pandas as pd
def dfScatter(df, xcol='Height', ycol='Weight', catcol='Gender'):
fig, ax = plt.subplots()
categories = np.unique(df[catcol])
colors = np.linspace(0, 1, len(categories))
colordict = dict(zip(categories, colors))
df["Color"] = df[catcol].apply(lambda x: colordict[x])
ax.scatter(df[xcol], df[ycol], c=df["Color"])
return fig
Cette fonction crée un dictionnaire de couleurs à partir de valeurs de catégorie uniques et attribue les couleurs correspondantes aux points de données. Le nuage de points est ensuite généré avec des points codés par couleur.
Exemple
Utilisation de l'exemple de cadre de données fourni :
df = pd.DataFrame({'Height': np.append(np.random.normal(6, 0.25, size=5), np.random.normal(5.4, 0.25, size=5)),
'Weight': np.append(np.random.normal(180, 20, size=5), np.random.normal(140, 20, size=5)),
'Gender': ["Male", "Male", "Male", "Male", "Male",
"Female", "Female", "Female", "Female", "Female"]})
Appel de la fonction dfScatter avec le dataframe :
fig = dfScatter(df)
fig.savefig('color_coded_scatterplot.png')
Produit un nuage de points où les points sont colorés par sexe :
[Image d'un nuage de points coloré par sexe]
Seaborn's advanced Les fonctionnalités et la fonction dfScatter personnalisée offrent des options flexibles pour ajouter un codage couleur aux nuages de points en Python, rendant la visualisation des données plus informative et visuellement attrayante.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3