Como plotar valores de NaN como uma cor especial com imshow no matplotlib?

Estou tentando usar imshow no matplotlib para plotar dados como um mapa de calor, mas alguns dos valores são NaNs. Eu 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 eu obtenho algo melhor, mas os valores de NaN são desenhados da mesma cor que vmin ... Existe uma maneira graciosa de definir os NaNs para serem desenhados com uma cor especial (por exemplo: cinza ou transparente)?

questionAnswers(3)

yourAnswerToTheQuestion