Estou tentando usar imshow em matplotlib para plotar dados como um mapa de calor, mas alguns dos valores são NaNs. Gostaria que os NaNs fossem renderizados como uma cor especial não encontrada no mapa de cores.
exemplo:
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()
A imagem resultante é inesperadamente toda azul (a cor mais baixa no mapa de cores do jato). No entanto, se eu fizer a plotagem assim:
ax.imshow(a, interpolation='nearest', vmin=0, vmax=24)
--então consigo algo melhor, mas os valores NaN são desenhados da mesma cor que vmin ... Existe uma maneira elegante de definir NaNs para serem desenhados com uma cor especial (por exemplo: cinza ou transparente)?
matplotlib.__version__=='1.2.1'
), isso funciona sem problemas.