Estoy tratando de usar imshow en matplotlib para trazar datos como un mapa de calor, pero algunos de los valores son NaN. Me gustaría que los NaN se representen como un color especial que no se encuentra en el mapa de colores.
ejemplo:
import numpy as np
import matplotlib.pyplot as plt
f = plt.figure()
ax = f.add_subplot(111)
a = np.arange(25).reshape((5,5)).astype(float)
a[3,:] = np.nan
ax.imshow(a, interpolation='nearest')
f.canvas.draw()
La imagen resultante es inesperadamente toda azul (el color más bajo en el mapa de colores del jet). Sin embargo, si hago el trazado así:
ax.imshow(a, interpolation='nearest', vmin=0, vmax=24)
- luego obtengo algo mejor, pero los valores de NaN se dibujan del mismo color que vmin ... ¿Hay alguna manera elegante de configurar los NaN para que se dibujen con un color especial (por ejemplo: gris o transparente)?
matplotlib.__version__=='1.2.1'
), esto funciona sin problemas.