第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在matplotlib中使用imshow將NaN值繪制為特殊顏色?

如何在matplotlib中使用imshow將NaN值繪制為特殊顏色?

幕布斯6054654 2019-12-25 14:34:56
我正在嘗試在matplotlib中使用imshow將數(shù)據(jù)繪制為熱圖,但其中一些值為NaN。我希望將NaN渲染為在顏色圖中找不到的特殊顏色。例:import numpy as npimport matplotlib.pyplot as pltf = plt.figure()ax = f.add_subplot(111)a = np.arange(25).reshape((5,5)).astype(float)a[3,:] = np.nanax.imshow(a, interpolation='nearest')f.canvas.draw()生成的圖像出乎意料地是全藍(lán)色(噴射彩色圖中的最低顏色)。但是,如果我這樣作圖:ax.imshow(a, interpolation='nearest', vmin=0, vmax=24)-然后我得到了更好的結(jié)果,但是NaN值的繪制顏色與vmin相同...是否可以通過一種優(yōu)美的方式將NaN設(shè)置為使用特殊顏色繪制(例如:灰色或透明)?
查看完整描述

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)


查看完整回答
反對 回復(fù) 2019-12-25
?
慕的地6264312

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)該足夠了,盡管我仍然愿意提出建議。:]


查看完整回答
反對 回復(fù) 2019-12-25
?
胡說叔叔

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)使用類似的方法。

查看完整回答
反對 回復(fù) 2019-12-25
  • 3 回答
  • 0 關(guān)注
  • 1398 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號