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()
結果の画像は、予期せずすべて青(ジェットカラーマップの最低色)になります。ただし、次のようにプロットを行うと、次のようになります。
ax.imshow(a, interpolation='nearest', vmin=0, vmax=24)
-それならもっと良いものが得られますが、NaN値はvminと同じ色で描画されます... NaNを特別な色(例:灰色または透明)で描画するように設定できる優雅な方法はありますか?
matplotlib.__version__=='1.2.1'
)、これは問題なく動作します。