Pouvez-vous colorer des nuages ​​de points en fonction de valeurs de colonne spécifiques dans Pandas avec Matplotlib ?

Barbara Streisand
Libérer: 2024-10-19 14:50:02
original
752 Les gens l'ont consulté

Can You Color Scatter Plots Based on Specific Column Values in Pandas with Matplotlib?

Coloration des nuages ​​de points par valeurs de colonne à l'aide de Pandas et Matplotlib

Matplotlib est une bibliothèque Python populaire pour créer des visualisations statiques, animées et interactives dans Python. Cet article explore l'utilisation de Matplotlib pour colorer des nuages ​​de points en fonction des valeurs d'une colonne spécifique d'un Pandas DataFrame.

Importations et données

Pour commencer, nous importons les bibliothèques nécessaires , y compris Matplotlib (en tant que plt) et Pandas (en tant que pd). Nous générons également un exemple de DataFrame ("df") avec trois colonnes : "Taille", "Poids" et "Sexe".

<code class="python">import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

np.random.seed(0)
N = 37
_genders = ["Female", "Male", "Non-binary", "No Response"]
df = pd.DataFrame({
    "Height (cm)": np.random.uniform(low=130, high=200, size=N),
    "Weight (kg)": np.random.uniform(low=30, high=100, size=N),
    "Gender": np.random.choice(_genders, size=N),
})</code>
Copier après la connexion

Mise à jour en août 2021

Seaborn a introduit de nouvelles fonctions au niveau des figures, telles que seaborn.relplot dans la version 0.11.0. Ces fonctions sont recommandées plutôt que d'utiliser FacetGrid directement.

<code class="python">sns.relplot(data=df, x="Weight (kg)", y="Height (cm)", hue="Gender", hue_order=_genders, aspect=1.61)
plt.show()</code>
Copier après la connexion

Ancienne réponse (2015)

Si vous souhaitez utiliser Matplotlib directement, vous devrez mapper les fichiers de matplotlib fonction scatter sur les catégories d'un Pandas DataFrame. Pour ce faire :

  • Créez un dictionnaire avec des catégories uniques à partir de la colonne et des couleurs.
  • Ajoutez une nouvelle colonne "Couleur" au DataFrame, en attribuant à chaque catégorie une couleur correspondante.
  • Utilisez la fonction scatter pour tracer les données, en spécifiant la colonne de couleur comme argument "c".
<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

fig = dfScatter(df)
fig.savefig('fig1.png')</code>
Copier après la connexion

En suivant ces étapes, vous pouvez facilement colorer les nuages ​​de points en fonction de valeurs de colonne à l'aide de Pandas et Matplotlib.

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!