Sto cercando di usare imshow in matplotlib per tracciare i dati come heatmap, ma alcuni dei valori sono NaN. Mi piacerebbe che i NaNs fossero resi come un colore speciale non trovato nella mappa dei colori.Come posso tracciare i valori NaN come un colore speciale con imshow in matplotlib?
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 tutto blu (il colore più bassa nella mappa di colori a getto). Tuttavia, se faccio il tramando come questo:
ax.imshow(a, interpolation='nearest', vmin=0, vmax=24)
--quindi ottengo qualcosa di meglio, ma i valori NaN sono disegnate lo stesso colore Vmin ... c'è un modo aggraziato che posso impostare NaN a essere disegnato con un colore speciale (es .: grigio o trasparente)?
Alcuni anni dopo ('matplotlib .__ versione __ == '1.2.1''), questo funziona senza problemi. –