179 votes

Comment choisir une nouvelle couleur pour chaque ligne tracée à l'intérieur d'une figure dans matplotlib?

J'aimerais ne PAS spécifier une couleur pour chaque ligne tracée:

for i in range(20):
   ax1.plot(x, y)

Si vous regardez l'image pour cela, matplotlib tente de choisir des couleurs pour chaque ligne qui sont différents, mais finalement, il ré-utilise des couleurs. Je veux juste arrêter de répéter déjà utilisé des couleurs ET/OU de nourrir une liste de couleurs à utiliser.

222voto

Robert Grzelka Points 27

im avec le mien nobish l'esprit de ne pas exactement shure est ok, mais je tkink que le cerveau de ne pas me tromper encore une fois, donc, de toute façon ne hait-moi si quelque chose est worng, mais pour shure 3 de travail (pas à l'aide de 1,2)

1:

n=20
color=cm.rainbow(np.linspace(0,1,n))
for i,c in zip(range(n),color):
   ax1.plot(x, y,c=c)

2, plus vite et mieux:

color=iter(cm.rainbow(np.linspace(0,1,n)))
c=next(color)
plt.plot(x,y,c=c)

3, ou:

n=20
color=iter(cm.rainbow(np.linspace(0,1,n)))
for i in range(n):
   c=next(color)
   ax1.plot(x, y,c=c)

exemple 3: example plot with iter,next color

72voto

tom10 Points 19886

1.0+ versions de matplotlib vous pouvez utiliser axes.color_cycle (voir exemple), et dans les anciennes versions, Axes.set_default_color_cycle (voir exemple).

12voto

Andrea Spadaccini Points 4755

Je ne sais pas si vous pouvez automatiquement changer la couleur, mais vous pouvez exploiter votre boucle pour générer différentes couleurs:

for i in range(20):
   ax1.plot(x, y, color = (0, i / 20.0, 0, 1)

Dans ce cas, les couleurs varient du noir au vert à 100%, mais vous pouvez la régler si vous le souhaitez.

Voir la matplotlib plot() docs et regardez pour le color argument mot-clé.

Si vous souhaitez charger une liste de couleurs, assurez-vous juste que vous avez une liste assez importante et ensuite utiliser l'indice de la boucle pour sélectionner la couleur

colors = ['r', 'b', ...., 'w']

for i in range(20):
   ax1.plot(x, y, color = colors[i])

2voto

Thomasillo Points 16

Vous pouvez également modifier la couleur par défaut du cycle dans votre matplotlibrcle fichier. Si vous ne savez pas où ce fichier, procédez de la manière suivante en python:

import matplotlib
matplotlib.matplotlib_fname()

Cela va vous montrer le chemin d'accès à votre actuellement utilisé matplotlibrc fichier. Dans ce fichier, vous trouverez parmi beaucoup d'autres paramètres également l'un pour l' axes.color.cycle. Il suffit de mettre dans votre choix de la séquence de couleurs et vous le trouverez dans chaque parcelle que vous faites. Notez que vous pouvez également utiliser en cours de validité html noms de couleurs dans matplotlib.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X