3 回答

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

TA貢獻1817條經驗 獲得超6個贊
嗯,看來我可以使用蒙版數組來做到這一點:
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)
這應該足夠了,盡管我仍然愿意提出建議。:]

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