Eu tenho o seguinte 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()
Portanto, isso produz um gráfico dos valores 'v' nos eixos X vs Y, usando o mapa de cores especificado. Os eixos X e Y são perfeitos, mas o mapa de cores se espalha entre o mínimo e o máximo de v. Gostaria de forçar o mapa de cores a variar entre 0 e 1.
Eu pensei em usar:
plt.axis(...)
Para definir os intervalos dos eixos, mas isso leva apenas argumentos para o mínimo e o máximo de X e Y, não o mapa de cores.
Editar:
Para maior clareza, digamos que eu tenho um gráfico cujos valores variam (0 ... 0,3) e outro gráfico cujos valores (0,2 ... 0,8).
Nos dois gráficos, desejarei que o intervalo da barra de cores seja (0 ... 1). Nos dois gráficos, desejo que esse intervalo de cores seja idêntico usando o intervalo completo de cdict acima (portanto, 0,25 nos dois gráficos terá a mesma cor). No primeiro gráfico, todas as cores entre 0,3 e 1,0 não aparecerão no gráfico, mas sim na tecla da barra de cores ao lado. No outro, todas as cores entre 0 e 0,2 e entre 0,8 e 1 não aparecerão no gráfico, mas na barra de cores ao lado.