2010-06-13 3 views
6

Chciałbym wykreślić 2-d matrycę z numpy jako kolorową macierz w Matplotlib. I ma następującą tablicę 9 przez-9wyświetlanie kolorowej tablicy 2d w matplotlib w Pythonie

my_array = diag(ones(9)) 

# plot the array 
pcolor(my_array) 

ja ma zostać ustawiony na trzy pierwsze elementy przekątnej być określony kolor, trzy następne być inny kolor, a ostatnie trzy inny kolor. Chciałbym określić kolor za pomocą kodu szesnastkowego, np. "# FF8C00". Jak mogę to zrobić?

Ponadto, w jaki sposób ustawić kolor elementów o wartościach 0 dla pcolor?

Odpowiedz

2

Aby mieć elementy mieć różne kolory, przypisywać im różne wartości:

my_array = diag([1,1,1,2,2,2,3,3,3]) 

Aby określić kolory, spróbuj:

from matplotlib.colors import ListedColormap, NoNorm 
cmap = ListedColormap(['#E0E0E0', '#FF8C00', '#8c00FF', '#00FF8C']) 
pcolor(my_array,cmap=cmap,norm=NoNorm()) 

norm=NoNorm() argumentem unika jakiegokolwiek skalowania wartości macierzy, tak że 0 otrzymuje pierwszy kolor z listy, 1 drugi itd.