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

Susan Sarandon
Libérer: 2024-10-19 14:49:02
original
666 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!