2013-02-28 15 views
36

Należy rozważyć zmienną x zawierającą liczbę zmiennoprzecinkową. Chcę użyć map kolorów matplotlib, aby odwzorować tę liczbę na kolor, ale nie rysować niczego. Zasadniczo chcę być w stanie wybrać colormap z mpl.cm.autumn na przykład, użyj mpl.colors.Normalize(vmin = -20, vmax = 10), aby ustawić zakres, a następnie zamapuj x na odpowiedni kolor. Ale naprawdę nie dostaję dokumentacji mpl.cm, więc jeśli ktoś mógłby dać mi podpowiedź.Jak zamapować numer na kolor używając mapy kolorów matplotlib?

Odpowiedz

60

Jest to tak proste jak cm.hot(0.3), które zwraca (0.82400814813704837, 0.0, 0.0, 1.0).

pełny program roboczy mógł odczytać

import matplotlib.cm as cm 

print cm.hot(0.3) 

Jeśli też chcesz mieć Normalizer, użyj

import matplotlib as mpl 
import matplotlib.cm as cm 

norm = mpl.colors.Normalize(vmin=-20, vmax=10) 
cmap = cm.hot 
x = 0.3 

m = cm.ScalarMappable(norm=norm, cmap=cmap) 
print m.to_rgba(x) 
5

Można uzyskać kolor z colormap dostarczając argumentu między 0 i 1 np cm.autumn(0.5).

Jeśli istnieje instancja normalizacja w grze, należy użyć zwrotu normalizacji Zamiast:

import matplotlib.cm as cm 
from matplotlib.colors import Normalize 

cmap = cm.autumn 
norm = Normalize(vmin=-20, vmax=10) 
print cmap(norm(5)) 
Powiązane problemy