1
我在C++中生成光譜圖,並使用matplotlib繪製/顯示此圖。光譜圖 - 美白出特定區域
這很好,但是,我正在分割譜圖的一部分,並且想要確定關鍵興趣點。式的工作原理類似於這樣:
if(block >= threshold) then
spectrogram = block
else:
spectrogram = "0"
在本質上,如果該頻譜內的塊是上方的閾值,則該塊的數據在特定的位置被捕獲。但是,如果不是那麼我們只是讓塊包含「0」。問題是,當我繪製這一點,它不會在值爲「0」的區域顯示「白色」:
import numpy as np
import matplotlib.pylab as pl;
data = np.loadtxt('spec.txt')
hm = pl.imshow(10*np.log10(data.T),interpolation='nearest',origin='lower',aspect='auto')
pl.show()
下面是結果:
是否有設置的方式,使不感興趣的區域爲「白色」,只顯示感興趣的區域?你想白
data = np.loadtxt("spec.txt")
data = np.ma.masked_where(data == 0, data)
pl.imshow(data, interpolation='nearest', ...)
編輯
感謝您的回覆,但是,這是行不通的。只是顯示相同。 – Phorce
你能看到編輯。它適用於我,所以1.)確保你已經遵循我的代碼,並且2.)你能否請你發佈數據的樣本副本? – wflynny
Ooops,正在看錯文件;)!漫長的一天!謝謝先生,終於可以開始寫這篇論文了! – Phorce