2010-06-13 10 views
6

Me gustaría trazar una matriz de 2 d desde numpy como una matriz coloreada en Matplotlib. Tengo la siguiente matriz 9-por-9:mostrando una matriz coloreada de 2d en matplotlib en Python

my_array = diag(ones(9)) 

# plot the array 
pcolor(my_array) 

me gustaría establecer los tres primeros elementos de la diagonal de ser un color determinado, el siguiente de tres a ser de un color diferente, y los tres últimos un color diferente Me gustaría especificar el color con una cadena de código hexadecimal, como "# FF8C00". ¿Cómo puedo hacer esto?

Además, ¿cómo puedo establecer el color de los elementos de 0 valores para pcolor?

Respuesta

2

Para que los elementos sean diferentes colores, asignarles valores diferentes:

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

Para especificar los colores, probar:

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

El argumento norm=NoNorm() evita cualquier escala de los valores de la matriz, por lo ese 0 obtiene el primer color en la lista, 1 el segundo, etc.

Cuestiones relacionadas