matplotlib で imshow を使用してデータをヒートマップとしてプロットしようとしていますが、一部の値が NaN です。カラーマップにない特別な色として NaN をレンダリングしたいと思います。
例:
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()
結果として得られる画像は、予想外にすべて青色です (jet カラーマップの最も低い色)。ただし、次のようにプロットすると:
ax.imshow(a, interpolation='nearest', vmin=0, vmax=24)
-- より良い結果が得られますが、NaN 値は vmin と同じ色で描画されます... NaN を特別な色 (例: 灰色または透明) で描画するように設定できる優雅な方法はありますか?