J'essaie d'utiliser imshow dans matplotlib pour tracer des données sous forme de carte thermique, mais certaines des valeurs sont des NaN. J'aimerais que les NaNs soient rendus par une couleur spéciale qui ne se trouve pas dans la carte des couleurs.
exemple :
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'image résultante est, de manière inattendue, entièrement bleue (la couleur la plus basse dans la carte des couleurs du jet). Cependant, si j'effectue le tracé comme suit :
ax.imshow(a, interpolation='nearest', vmin=0, vmax=24)
--j'obtiens alors quelque chose de mieux, mais les valeurs NaN sont dessinées de la même couleur que vmin... Est-ce qu'il y a un moyen gracieux de faire en sorte que les valeurs NaN soient dessinées avec une couleur spéciale (par exemple : gris ou transparent) ?
0 votes
Quelques années plus tard (
matplotlib.__version__=='1.2.1'
), cela fonctionne sans problème.