Matplotlib : Comment colorer un nuage de points par valeur



Souvent, vous souhaiterez peut-être ombrer la couleur des points dans un nuage de points matplotlib en fonction d’une troisième variable. Heureusement, cela est facile à faire en utilisant la fonction matplotlib.pyplot.scatter() , qui adopte la syntaxe suivante :

matplotlib.pyplot.scatter(x, y, s=Aucun, c=Aucun, cmap=Aucun)

où:

  • x : Tableau de valeurs à utiliser pour les positions de l’axe x dans le tracé.
  • y : tableau de valeurs à utiliser pour les positions de l’axe y dans le tracé.
  • s : la taille du marqueur.
  • c : Tableau de valeurs à utiliser pour les couleurs des marqueurs.
  • cmap : Une carte de couleurs à utiliser dans le tracé.

Vous pouvez utiliser c pour spécifier une variable à utiliser pour les valeurs de couleur et vous pouvez utiliser cmap pour spécifier les couleurs réelles à utiliser pour les marqueurs dans le nuage de points.

Ce tutoriel explique plusieurs exemples d’utilisation pratique de cette fonction.

Exemple 1 : Points de nuage de points de couleur par valeur

Supposons que nous ayons le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'x': [25, 12, 15, 14, 19, 23, 25, 29],
                   'y': [5, 7, 7, 9, 12, 9, 9, 4],
                   'z': [3, 4, 4, 5, 7, 8, 8, 9]})

#view DataFrame
df

        x	y	z
0	25	5	3
1	12	7	4
2	15	7	4
3	14	9	5
4	19	12	7
5	23	9	8
6	25	9	8
7	29	4	9

Le code suivant montre comment créer un nuage de points à l’aide d’une palette de couleurs grises et en utilisant les valeurs de la variable z comme nuance de la palette de couleurs :

import matplotlib.pyplot as plt

#create scatterplot
plt.scatter(df.x, df.y, s=200, c=df.z, cmap='gray')

Couleur du nuage de points Matplotlib par valeur

Pour cet exemple particulier, nous avons choisi la palette de couleurs « gris », mais vous pouvez trouver une liste complète des palettes de couleurs disponibles à utiliser dans la documentation des palettes de couleurs matplotlib .

Par exemple, nous pourrions à la place spécifier « Verts » comme palette de couleurs :

plt.scatter(df.x, df.y, s=200, c=df.z, cmap='Greens')

Diagramme de dispersion Matplotlib avec cmap

Par défaut, les marqueurs avec des valeurs plus grandes pour l’argument c sont ombrés plus foncés, mais vous pouvez inverser cette tendance en ajoutant simplement _r au nom du cmap :

plt.scatter(df.x, df.y, s=200, c=df.z, cmap='Greens_r')

Échelle inversée de la palette de couleurs Matplotlib

Exemple 2 : Points de nuage de points de couleur par catégorie

Supposons que nous ayons le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'x': [25, 12, 15, 14, 19, 23, 25, 29],
                   'y': [5, 7, 7, 9, 12, 9, 9, 4],
                   'z': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'C']})

#view DataFrame
df

	x	y	z
0	25	5	A
1	12	7	A
2	15	7	B
3	14	9	B
4	19	12	B
5	23	9	C
6	25	9	C
7	29	4	C

Le code suivant montre comment créer un nuage de points en utilisant la variable z pour colorer les marqueurs en fonction de la catégorie :

import matplotlib.pyplot as plt

groups = df.groupby('z')
for name, group in groups:
    plt.plot(group.x, group.y, marker='o', linestyle='', markersize=12, label=name)

plt.legend()

Diagramme de dispersion Matplotlib coloré par catégorie

Vous pouvez trouver plus de didacticiels Python ici .

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *