3 回答

TA貢獻(xiàn)1824條經(jīng)驗 獲得超5個贊
對于較新版本的Matplotlib,不再需要使用掩碼數(shù)組。
例如,讓我們生成一個數(shù)組,其中每個第7個值都是NaN:
arr = np.arange(100, dtype=float).reshape(10, 10)
arr[~(arr % 7).astype(bool)] = np.nan
我們可以修改當(dāng)前的顏色圖,并使用以下幾行來繪制數(shù)組:
current_cmap = matplotlib.cm.get_cmap()
current_cmap.set_bad(color='red')
plt.imshow(arr)

TA貢獻(xiàn)1817條經(jīng)驗 獲得超6個贊
嗯,看來我可以使用蒙版數(shù)組來做到這一點:
masked_array = np.ma.array (a, mask=np.isnan(a))
cmap = matplotlib.cm.jet
cmap.set_bad('white',1.)
ax.imshow(masked_array, interpolation='nearest', cmap=cmap)
這應(yīng)該足夠了,盡管我仍然愿意提出建議。:]

TA貢獻(xiàn)1804條經(jīng)驗 獲得超8個贊
附帶一點-我認(rèn)為這樣做會覆蓋默認(rèn)值matplotlib.cm.jet
,因此我通常會制作一個副本:import copy; cmap=copy.copy(matplotlib.cm.jet)
。另外,如果要將0值設(shè)置為其他顏色,cmap._init(); cm._lut[:,0] = (1,1,1,1)
則應(yīng)使用類似的方法。
添加回答
舉報