Próbuję użyć imshow w matplotlib do wykreślenia danych jako mapy cieplnej, ale niektóre wartości to NaN. Chciałbym, aby NaN były renderowane jako specjalny kolor, którego nie ma w mapie kolorów.
przykład:
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()
Powstały obraz jest nieoczekiwanie cały niebieski (najniższy kolor na mapie kolorów odrzutowca). Jeśli jednak robię wykres w ten sposób:
ax.imshow(a, interpolation='nearest', vmin=0, vmax=24)
- wtedy dostaję coś lepszego, ale wartości NaN są rysowane w tym samym kolorze co vmin ... Czy istnieje wdzięczny sposób, aby ustawić NaN tak, aby były rysowane w specjalnym kolorze (np.: szary lub przezroczysty)?
matplotlib.__version__=='1.2.1'
) działa to bez problemu.