2010-03-15 54 views
21

estoy usando imshow() en matplotlib así:Creación de una leyenda de mapa de color en Matplotlib

import numpy as np 
import matplotlib.pyplot as plt 
mat = '''SOME MATRIX''' 
plt.imshow(mat, origin="lower", cmap='gray', interpolation='nearest') 
plt.show() 

¿Cómo agrego una leyenda que muestra el valor numérico de los diferentes tonos de gris. Por desgracia, mi googlear no ha puesto al descubierto una respuesta :(

Gracias de antemano por la ayuda

Vince

Respuesta

7

simple, simplemente plt.colorbar():

import numpy as np 
import matplotlib.pyplot as plt 
mat = np.random.random((10,10)) 
plt.imshow(mat, origin="lower", cmap='gray', interpolation='nearest') 
plt.colorbar() 
plt.show() 
1

Como de costumbre, lo averigüe justo después de lo pido;.). Para la posteridad, aquí está mi puñalada en ella:

m = np.zeros((1,20)) 
for i in range(20): 
    m[0,i] = (i*5)/100.0 
print m 
plt.imshow(m, cmap='gray', aspect=2) 
plt.yticks(np.arange(0)) 
plt.xticks(np.arange(0,25,5), [0,25,50,75,100]) 
plt.show() 

Estoy seguro de que existe una solución más elegante.

Vince

29

Hay una orden interna colorbar() function en pyplot.

+0

perfecto! Gracias. – Vince

+9

Si está utilizando subtramas, puede necesitar usarlo como 'fig = plt.figure(); ax = fig.add_subplot (1,1,1); plot = ax.pcolor (datos); fig.colorbar (plot); ' –

+0

Los ejemplos de código habrían sido buenos; Pensé que el protocolo era un enlace, solo las respuestas se consideran deficientes. El uso más fácil es simplemente 'plt.colorbar()' – wordsforthewise

Cuestiones relacionadas