Sto cercando di utilizzare imshow in matplotlib per tracciare i dati come mappa di calore, ma alcuni dei valori sono NaN. Vorrei che i NaN fossero renderizzati come un colore speciale non trovato nella mappa dei colori.
esempio:
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()
L'immagine risultante è inaspettatamente tutta blu (il colore più basso nella mappa dei colori a getto). Tuttavia, se eseguo la stampa in questo modo:
ax.imshow(a, interpolation='nearest', vmin=0, vmax=24)
- allora ottengo qualcosa di meglio, ma i valori NaN sono disegnati dello stesso colore di vmin ... C'è un modo grazioso con cui posso impostare NaNs per essere disegnato con un colore speciale (ad esempio: grigio o trasparente)?
matplotlib.__version__=='1.2.1'
), funziona senza problemi.