La barre de couleur dans la figure ci-dessous est dessinée en matlab. Je me demande s'il est possible de dessiner une barre de couleur similaire en python/matplotlib? J'ai besoin des changements de couleur non lissés dans la barre de couleur, de sorte que les valeurs 0-5 soient représentées dans des couleurs très distinguables et non continues. Si possible, pourriez-vous me donner un exemple s'il vous plaît? Merci~
Réponse
Trop de publicités?Utilisez ListedColormap et BoundaryNorm:
import numpy as np
import matplotlib as mpl
from matplotlib import pyplot
data = np.floor(np.random.random((10,10)) * 6)
cmap = mpl.colors.ListedColormap(['w', 'b', 'g', 'y', '#ff8c00', 'r'])
norm = mpl.colors.BoundaryNorm([0,1,2,3,4,5,6], cmap.N)
pyplot.imshow(data, cmap=cmap, norm=norm, interpolation='none')
pyplot.colorbar()
pyplot.show()
Quelques exemples d'utilisation de ListedColormap: barres de couleur, lignes multicolores.