Coloration des nuages de points par valeurs de colonne
En Python, la bibliothèque Matplotlib fournit plusieurs moyens de personnaliser l'esthétique des nuages de points. Une tâche courante consiste à attribuer des couleurs en fonction des valeurs d'une colonne spécifique.
Intégration Seaborn
Une solution consiste à exploiter la bibliothèque Seaborn, qui s'appuie sur Matplotlib. Seaborn propose des fonctions de haut niveau telles que sns.relplot et sns.FacetGrid qui vous permettent de mapper facilement des nuages de points sur des colonnes spécifiques. En spécifiant le paramètre de teinte, vous pouvez colorer les points selon une troisième colonne contenant des étiquettes de catégorie.
<code class="python">import seaborn as sns sns.relplot(data=df, x='Weight (kg)', y='Height (cm)', hue='Gender')</code>
Utilisation directe de Matplotlib
Alternativement, vous pouvez utiliser directement Matplotlib Fonction plt.scatter pour créer des nuages de points et spécifier les couleurs manuellement. Cela nécessite la création d'un dictionnaire de couleurs personnalisé qui mappe les étiquettes de catégorie aux couleurs.
<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>
En appelant cette fonction, vous pouvez générer un nuage de points coloré par la colonne de catégorie spécifiée :
<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>
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!