"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 attribuer des couleurs aux points dans les nuages ​​de points en fonction des valeurs de colonne en Python ?

Comment attribuer des couleurs aux points dans les nuages ​​de points en fonction des valeurs de colonne en Python ?

Publié le 2024-11-10
Parcourir:553

How to Assign Colors to Points in Scatter Plots Based on Column Values in Python?

Coloration des nuages ​​de points par valeurs de colonne en Python

La polyvalence de ggplot2 dans R permet une affectation transparente des couleurs aux points de données en fonction de la colonne valeurs. Cette fonctionnalité peut également être répliquée en Python à l'aide des dataframes pandas et de Matplotlib.

Utilisation de Pandas et Matplotlib

Pour mapper les couleurs aux valeurs dans Matplotlib, envisagez les étapes suivantes :

  1. Créer un dictionnaire de couleurs : définissez un dictionnaire qui mappe les valeurs uniques de la colonne catégorielle à une couleur correspondante. Cela garantit une attribution de couleur cohérente entre les points de données.
  2. Ajouter une colonne de couleur : créez une nouvelle colonne dans le cadre de données qui attribue la couleur correspondante à chaque valeur de la colonne catégorielle.
  3. Tracer le nuage de points : utilisez le paramètre c dans matplotlib.pyplot.scatter pour spécifier la colonne de couleur comme couleur argument.

Voici un exemple d'implémentation :

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

Exemple d'utilisation

Considérons un cadre de données avec des colonnes Taille, Poids et Sexe. Pour créer un nuage de points dans lequel les couleurs sont attribuées en fonction de la colonne Sexe :

df = pd.DataFrame({'Height':np.random.normal(size=10),
                       'Weight':np.random.normal(size=10),
                       'Gender': ["Male","Male","Unknown","Male","Male",
                                  "Female","Did not respond","Unknown","Female","Female"]})    
fig = dfScatter(df)

Cela générera un nuage de points où la colonne Sexe détermine la couleur de chaque point de données.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729320437. 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