Comment générer des couleurs aléatoires dans les tracés Matplotlib
Vous pouvez utiliser la syntaxe de base suivante pour générer des couleurs aléatoires dans les tracés Matplotlib :
1. Générer une couleur aléatoire pour le tracé linéaire
col = (np.random.random(), np.random.random(), np.random.random()) plt.plot(x, y, c=col)
2. Générer des couleurs aléatoires pour le nuage de points
plt.scatter(x, y, c=np.random.rand(len(x),3))
Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.
Exemple 1 : générer une couleur aléatoire pour le tracé linéaire
Le code suivant montre comment générer une couleur aléatoire pour une seule ligne dans un tracé linéaire :
import matplotlib.pyplot as plt
import numpy as np
#define data
x = [1, 2, 3, 4, 5]
y = [7, 12, 15, 19, 25]
#define random color
col = (np.random.random(), np.random.random(), np.random.random())
#create line plot with random color
plt.plot(x, y, c=col)
Si nous exécutons à nouveau exactement le même morceau de code, un tracé linéaire avec une couleur aléatoire différente sera créé :
Exemple 2 : générer des couleurs aléatoires pour un nuage de points
Le code suivant montre comment créer un nuage de points avec des couleurs aléatoires pour chaque point du tracé :
import matplotlib.pyplot as plt
import numpy as np
#define data
x = [1, 2, 3, 4, 5]
y = [7, 12, 15, 19, 25]
#create scatterplot with random colors for each point
plt.scatter(x, y, c=np.random.rand(len(x),3))
Si nous exécutons à nouveau exactement le même morceau de code, un nuage de points avec de nouvelles couleurs aléatoires pour chaque point sera créé :
Remarque : sous le capot, ce code utilise simplement NumPy pour générer des couleurs aléatoires (R, V, B).
Reportez-vous à la documentation en ligne pour une explication complète de la fonction NumPy random() .
Ressources additionnelles
Les didacticiels suivants expliquent comment exécuter d’autres fonctions de traçage courantes dans Matplotlib :
Comment changer la couleur d’arrière-plan dans Matplotlib
Comment colorer un nuage de points par valeur dans Matplotlib