Mam następujący kod:Set Colorbar klasy w matplotlib
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()
Więc ta produkuje wykres wartości „V” na osi X vs Y, przy użyciu określonego colormap. X i Y są doskonałe, ale colormap rozciąga się pomiędzy minimum i maksimum, na p ja jak wymusić colormap się w przedziale od 0 do 1.
mi, że zastosowania.
plt.axis(...)
Aby ustawić zakresy osi, ale to bierze tylko argumenty dla min i maksimum X i Y, a nie mapy kolorów.
Edit:
Dla jasności, powiedzmy, że mam jeden wykres, którego wartości w przedziale (0 ... 0,3), a kolejny wykres, którego wartości (0,2 ... 0,8).
Na obu wykresach będę potrzebował zakresu paska koloru (0 ... 1). Na obu wykresach chcę, aby ten zakres kolorów był identyczny, używając pełnego zakresu cdict (powyżej 0,25 na obu wykresach będzie tego samego koloru). Na pierwszym wykresie wszystkie kolory w zakresie od 0,3 do 1,0 nie zostaną uwzględnione na wykresie, ale będą widoczne na klawiaturze z boku. Z kolei wszystkie kolory od 0 do 0,2 oraz od 0,8 do 1 nie będą widoczne na wykresie, ale będą widoczne na pasku z boku.
myślę, że robi coś subtelnie inny ... Przepraszam, że prawdopodobnie nie był wystarczająco precyzyjny w moim pytaniu. Twoje rozwiązanie przeskaluje kolory tak, że to, co kiedyś reprezentowało wartość 1.0, będzie teraz reprezentować maksymalną wartość w moich danych. Kolor paska pokaże 0..1 tak jak tego potrzebuję (z vmin = 0, vmax = 1), ale wszystko powyżej tej maksymalnej wartości będzie tego samego koloru ... – Paul
... Zaktualizowałem moje pytanie, aby pokazać, co Poszedłem wyraźniej. Przepraszam, jeśli byłem zbyt nieokreślony. – Paul
Twoja odpowiedź pomogła mi rozwiązać mój problem! – punyidea