Graphiques à nuages de points à 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 : améliorations Seaborn
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 des colonnes :
Approche originale Pandas et Matplotlib
Pour ceux qui recherchent une approche directe avec Matplotlib, voici une fonction personnalisée qui attribue des couleurs aux points basés sur une colonne catégorielle :
<code class="python">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</code>
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 :
<code class="python">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"]})</code>
Appel de la fonction dfScatter avec le dataframe :
<code class="python">fig = dfScatter(df) fig.savefig('color_coded_scatterplot.png')</code>
Produit un nuage de points où les points sont colorés par sexe :
[Image du nuage de points coloré par sexe]
Les fonctionnalités avancées de Seaborn et le La fonction dfScatter personnalisée offre 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.
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!