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".
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),
})
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.
sns.relplot(data=df, x="Weight (kg)", y="Height (cm)", hue="Gender", hue_order=_genders, aspect=1.61)
plt.show()
Ancienne réponse (2015)
Si vous souhaitez utiliser Matplotlib directement, vous devrez mapper la fonction scatter de matplotlib sur les catégories d'un Pandas DataFrame . Pour ce faire :
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')
En suivant ces étapes, vous pouvez facilement colorer les nuages de points en fonction des valeurs de colonne à l'aide de Pandas et Matplotlib.
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