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 :
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 :
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 :
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 :
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.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArticle connexe - Matplotlib Scatter Plot
- Comment tracer une liste de coordonnées x,y dans Matplotlib
- Points de dispersion de l'étiquette Matplotlib
- Points de traçage dans Matplotlib
- Comment faire la légende du nuage de points dans Matplotlib