J'ai le code suivant :
import matplotlib.pyplot as plt
cdict = {
'red' : ( (0.0, 0.25, .25), (0.02, .59, .59), (1., 1., 1.)),
'green': ( (0.0, 0.0, 0.0), (0.02, .45, .45), (1., .97, .97)),
'blue' : ( (0.0, 1.0, 1.0), (0.02, .75, .75), (1., 0.45, 0.45))
}
cm = m.colors.LinearSegmentedColormap('my_colormap', cdict, 1024)
plt.clf()
plt.pcolor(X, Y, v, cmap=cm)
plt.loglog()
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.colorbar()
plt.show()
Cela produit un graphique des valeurs 'v' sur les axes X et Y, en utilisant la carte de couleurs spécifiée. Les axes X et Y sont parfaits, mais la carte de couleurs s'étend entre le minimum et le maximum de v. Je voudrais forcer la carte de couleurs à se situer entre 0 et 1.
J'ai pensé à utiliser :
plt.axis(...)
Pour définir les plages des axes, mais cela ne prend des arguments que pour le min et le max de X et Y, pas pour la carte des couleurs.
Edit :
Pour plus de clarté, disons que j'ai un graphique dont les valeurs sont comprises entre (0 ... 0,3), et un autre graphique dont les valeurs sont (0,2 ... 0,8).
Dans les deux graphiques, je souhaite que la gamme de la barre de couleur soit (0 ... 1). Dans les deux graphiques, je veux que cette gamme de couleur soit identique en utilisant la gamme complète de cdict ci-dessus (donc 0,25 dans les deux graphiques sera de la même couleur). Dans le premier graphique, toutes les couleurs comprises entre 0,3 et 1,0 ne figureront pas dans le graphique, mais dans la barre de couleurs située sur le côté. Dans l'autre, toutes les couleurs comprises entre 0 et 0,2, et entre 0,8 et 1 n'apparaîtront pas dans le graphique, mais dans la barre de couleurs sur le côté.