Définir la couleur pour le nuage de points dans Matplotlib

Suraj Joshi 1 décembre 2020
Définir la couleur pour le nuage de points dans Matplotlib

Pour définir la couleur des marqueurs dans Matplotlib, nous définissons le paramètre c dans la méthode matplotlib.pyplot.scatter().

Définir la couleur d’un marqueur dans le Scatterplot

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5, 6, 7]
y = [2, 1, 4, 7, 4, 3, 2]

plt.scatter(x, y, c="red")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Simple Scatter Plot")
plt.show()

Production :

Définir la couleur du marqueur dans le nuage de points

Ici, nous fixons la couleur de tous les marqueurs dans les nuages de points au rouge en mettant c="red" dans la méthode scatter().

Si nous avons deux ensembles de données différents, nous pouvons utiliser des couleurs différentes pour chaque ensemble de données en utilisant les différentes valeurs du paramètre c.

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5, 6, 7]
y1 = [2, 1, 4, 7, 4, 3, 2]
y2 = [4, 4, 5, 3, 8, 9, 6]

plt.scatter(x, y1, c="red")
plt.scatter(x, y2, c="green")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Scatter Plot of two different datasets")
plt.show()

Production :

Définir une couleur différente pour chaque ensemble de données dans le diagramme de dispersion

Ici, l’ensemble de données y1 est représenté dans le nuage de points par la couleur rouge tandis que l’ensemble de données y2 est représenté dans le nuage de points par la couleur verte.

Il sera difficile d’attribuer manuellement une couleur à chaque fois à chaque ensemble de données s’il y a un grand nombre d’ensembles de données. Dans de tels cas, nous pouvons utiliser le logiciel colormap pour générer les couleurs pour chaque ensemble de données.

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

x = np.array([1, 2, 3, 4, 5])
y = np.random.random((10, 5))

colors = cm.rainbow(np.linspace(0, 1, y.shape[0]))
for dataset, color in zip(y, colors):
    plt.scatter(x, dataset, color=color)

plt.xlabel("X")
plt.ylabel("Y")
plt.show()

Production :

Définir automatiquement une couleur différente pour chaque ensemble de données

Il génère des couleurs différentes pour chaque ligne de la matrice y et trace chaque ligne avec une couleur différente.

Au lieu d’utiliser la carte de couleurs générée, nous pouvons également spécifier les couleurs à utiliser pour les nuages de points dans une liste et passer la liste à la méthode itertools.cycle() pour faire un cycleur de couleurs personnalisé. Pour itérer sur la couleur, nous utilisons la fonction next().

import itertools
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

x = np.array([1, 2, 3, 4, 5])
y = np.random.random((10, 5))

color_cycle = itertools.cycle(
    ["orange", "pink", "blue", "brown", "red", "grey", "yellow", "green"]
)

for row in y:
    plt.scatter(x, row, color=next(color_cycle))

plt.xlabel("X")
plt.ylabel("Y")
plt.show()

Production :

Définir automatiquement une couleur différente pour chaque ensemble de données

La méthode itertools.cycle() va créer une liste cyclique de couleurs à partir de l’ensemble de couleurs donné, et chaque ligne est tracée dans le nuage de points en choisissant une couleur dans la liste cyclique.

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Article connexe - Matplotlib Scatter Plot

Article connexe - Matplotlib Color