Cet article explique comment créer un nuage de points en Python en utilisant matplotlib, où chaque couleur représente un niveau catégoriel différent. Cette approche évite d'utiliser des packages de traçage auxiliaires comme seaborn et ggplot pour Python.
Matplotlib fournit l'argument c dans plt.scatter, qui permet la personnalisation des couleurs. Voici un exemple :
<code class="python">import matplotlib.pyplot as plt import pandas as pd # Sample DataFrame df = pd.DataFrame({'carat': [0.23, 0.21, 0.23], 'price': [326, 326, 327], 'color': ['E', 'E', 'E']}) # Color mapping colors = {'D': 'tab:blue', 'E': 'tab:orange', 'F': 'tab:green', 'G': 'tab:red', 'H': 'tab:purple', 'I': 'tab:brown', 'J': 'tab:pink'} # Scatter plot with colors plt.scatter(df['carat'], df['price'], c=df['color'].map(colors)) plt.show()</code>
La fonction map(colors) mappe les couleurs "diamant" aux couleurs "traçage".
Bien que cet article se concentre sur matplotlib, il convient de mentionner que seaborn propose également une solution pratique :
<code class="python">import seaborn as sns # Scatter plot with colors sns.lmplot(x='carat', y='price', data=df, hue='color', fit_reg=False)</code>
Pour une approche manuelle, vous pouvez utiliser pandas pour regrouper par couleur et tracer chaque groupe séparément :
<code class="python">import matplotlib.pyplot as plt import pandas as pd # Sample DataFrame df = pd.DataFrame({'carat': [0.23, 0.21, 0.23], 'price': [326, 326, 327], 'color': ['E', 'E', 'E']}) # Color mapping colors = {'D': 'tab:blue', 'E': 'tab:orange', 'F': 'tab:green', 'G': 'tab:red', 'H': 'tab:purple', 'I': 'tab:brown', 'J': 'tab:pink'} # Group by color and plot grouped = df.groupby('color') for key, group in grouped: group.plot(ax=plt.gca(), kind='scatter', x='carat', y='price', label=key, color=colors[key]) plt.show()</code>
Cela suppose le même DataFrame qu'avant et attribue manuellement les couleurs pendant le processus de traçage.
Cet article a démontré comment tracer différentes couleurs pour différents niveaux catégoriels en Python à l'aide de matplotlib, ainsi que des options supplémentaires utilisant seaborn et une approche manuelle avec pandas.
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!