Tengo el siguiente código:
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()
Entonces esto produce un gráfico de los valores 'v' en los ejes X vs Y, usando el mapa de colores especificado. Los ejes X e Y son perfectos, pero el mapa de colores se extiende entre el mínimo y el máximo de v. Me gustaría forzar que el mapa de colores oscile entre 0 y 1.
Pensé en usar:
plt.axis(...)
Para establecer los rangos de los ejes, pero esto solo toma argumentos para el mínimo y máximo de X e Y, no el mapa de colores.
Editar:
Para mayor claridad, digamos que tengo un gráfico cuyos valores varían (0 ... 0.3) y otro gráfico cuyos valores (0.2 ... 0.8).
En ambos gráficos, querré que el rango de la barra de colores sea (0 ... 1). En ambos gráficos, quiero que este rango de color sea idéntico usando el rango completo de cdict arriba (por lo que 0.25 en ambos gráficos será del mismo color). En el primer gráfico, todos los colores entre 0.3 y 1.0 no aparecerán en el gráfico, pero sí en la tecla de barra de colores al costado. En el otro, todos los colores entre 0 y 0.2, y entre 0.8 y 1 no aparecerán en el gráfico, pero sí en la barra de colores al costado.