"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment coder en couleur les nuages ​​de points par valeurs de colonne en Python ?

Comment coder en couleur les nuages ​​de points par valeurs de colonne en Python ?

Publié le 2024-11-09
Parcourir:610

How to Color-Code Scatter Plots by Column Values in Python?

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 :

  • Utilisation de seaborn.relplot : Cette fonction de haut niveau combine des aspects de matplotlib.pyplot.scatter et de Seaborn. FacetteGrille. Il gère automatiquement le codage des couleurs en fonction des paramètres de teinte et d'ordre spécifiés.
  • Mappage de matplotlib.pyplot.scatter à seaborn.FacetGrid : Semblable à l'approche originale, vous pouvez mapper la fonction scatter sur un FacetGrid et personnalisez les couleurs en fonction de la teinte.

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.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729320380. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

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