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.
Use a função CLIM (equivalente à função CAXIS no MATLAB):
fonte
Não tenho certeza se essa é a solução mais elegante (usei isso), mas você pode dimensionar seus dados para o intervalo entre 0 e 1 e modificar a barra de cores:
Com os dois limites diferentes, você pode controlar o alcance e a legenda da barra de cores. Neste exemplo, apenas o intervalo entre -0,5 e 1,5 é exibido na barra, enquanto o mapa de cores cobre -2 a 2 (portanto, esse pode ser o intervalo de dados que você registra antes da escala).
Portanto, em vez de dimensionar o mapa de cores, você dimensiona seus dados e ajusta a barra de cores a isso.
fonte
Usando o ambiente de figura e .set_clim ()
Poderia ser mais fácil e segura essa alternativa se você tiver vários gráficos:
Uma única barra de cores
A melhor alternativa é usar uma barra de cores única para toda a plotagem. Existem diferentes maneiras de fazer isso, este tutorial é muito útil para entender a melhor opção. Prefiro esta solução que você pode simplesmente copiar e colar em vez da parte anterior do código na barra de cores visualizada .
PS
Eu sugeriria usar em
pcolormesh
vez de,pcolor
porque é mais rápido (mais informações aqui ).fonte