Je souhaite utiliser la palette de couleurs Rainbow
dans une image utilisant imshow
. Cela fonctionne parfaitement, mais je veux redéfinir la couleur pour la valeur 0
. Au lieu de violette, je veux utiliser du blanc.
Je veux le faire uniquement pour la valeur zéro, toutes les autres valeurs peuvent rester avec les valeurs par défaut dans la palette de couleurs.
Une idée comment faire sans avoir à modifier manuellement la palette de couleurs?
Vous pouvez aussi utiliser set_under
ce qui, à mon avis, est plus logique que d'utiliser set_bad
my_cmap = matplotlib.cm.get_cmap('Rainbow')
my_cmap.set_under('w')
imshow(np.arange(25).reshape(5, 5),
interpolation='none',
cmap=my_cmap,
vmin=.001)
Vous pouvez modifier la barre de couleur pour afficher également la couleur "sous" (et la symétrie "sur") en utilisant le kwarg extend
, voir exemple et docs .
Pour une réponse à un doublon avec des exemples plus complets, voir Comment créer une palette de couleurs matplotlib qui traite une valeur spécialement?