Comment choisir une nouvelle couleur pour chaque ligne tracée à l'intérieur d'une figure dans matplotlib?
Je tiens à 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.
Vous devez vous connecter pour publier un commentaire.
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).[colormap(i) for i in np.linspace(0, 0.9, num_plots)]
, oùcolormap
est l'un de la carte des couleurs dansmatplotlib.pyplot.cm
etnumplots
est le nombre de couleurs que vous souhaitez. Méfiez-vous que cela peut entraîner dans des couleurs qui sont difficiles à distinguer les unes des autres, si!!color_cycle
a été dépréciée en faveur deprop_cycle
: stackoverflow.com/a/39522128/895245Im en utilisant 3-rd l'un de ces 3 généralement, aussi je wasny vérification 1 et 2 version.
exemple de 3:
n
il faut attribuer une valeur, sinon de rencontrer le problèmeNameError: global name 'n' is not defined
.prop_cycle
color_cycle
a été dépréciée en de 1,5 en faveur de cette généralisation: http://matplotlib.org/users/whats_new.html#added-axes-prop-cycle-key-to-rcparamsÉgalement indiqué dans le (mal nommée) exemple: http://matplotlib.org/1.5.1/examples/color/color_cycle_demo.html mentionné à: https://stackoverflow.com/a/4971431/895245
Testé dans matplotlib 1.5.1.
Je ne sais pas si vous pouvez automatiquement changer la couleur, mais vous pouvez exploiter votre boucle pour générer différentes couleurs:
Dans ce cas, les couleurs varient du noir au vert à 100%, mais vous pouvez la régler si vous le souhaitez.
Voir le matplotlib plot() docs et de regarder pour la
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
Vous pouvez également modifier la couleur par défaut du cycle dans votre
matplotlibrc
fichier.Si vous ne savez pas où ce fichier, procédez de la manière suivante en python:
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
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.
Vous pouvez utiliser un modèle prédéfini "qualitative colormap", comme ceci:
Testé sur matplotlib 3.0.3. Voir https://github.com/matplotlib/matplotlib/issues/10840 de discussion sur pourquoi vous ne pouvez pas appeler
axes.set_prop_cycle(color=cmap)
.Une liste de prédéfinis qualititative carte des couleurs est disponible à https://matplotlib.org/gallery/color/colormap_reference.html :