Maison >développement back-end >Tutoriel Python >Pouvez-vous colorer des nuages de points en fonction de valeurs de colonne spécifiques dans Pandas avec 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>
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>
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 :
<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>
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!