Mam następujący kod:
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()
To tworzy wykres wartości „v” na osiach X względem Y, przy użyciu określonej mapy kolorów. Osie X i Y są idealne, ale mapa kolorów rozciąga się między min a max v. Chciałbym, aby mapa kolorów znajdowała się w zakresie od 0 do 1.
Myślałem o użyciu:
plt.axis(...)
Aby ustawić zakresy osi, ale wymaga to tylko argumentów dla min i maks X i Y, a nie mapy kolorów.
Edytować:
Dla jasności powiedzmy, że mam jeden wykres, którego wartości mieszczą się w zakresie (0 ... 0,3), i inny wykres, którego wartości (0,2 ... 0,8).
Na obu wykresach chcę, aby zakres paska kolorów wynosił (0 ... 1). Na obu wykresach chcę, aby ten zakres kolorów był identyczny przy użyciu pełnego zakresu cdict powyżej (więc 0,25 na obu wykresach będzie tego samego koloru). Na pierwszym wykresie wszystkie kolory z przedziału od 0,3 do 1,0 nie pojawią się na wykresie, ale będą w klawiszu paska kolorów z boku. W drugim przypadku wszystkie kolory od 0 do 0,2 oraz od 0,8 do 1 nie pojawią się na wykresie, ale na pasku kolorów z boku.