Maison  >  Article  >  développement back-end  >  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 ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-19 14:49:02759parcourir

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. Tracez le nuage de points : utilisez le paramètre c dans matplotlib.pyplot.scatter pour spécifier la colonne de couleur comme argument de couleur.

Voici un exemple d'implémentation :

<code class="python">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>

Exemple d'utilisation

Considérons un dataframe 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 :

<code class="python">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)</code>

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

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn