0
我有兩個相同長度的時間序列(地震軌跡的不同分量),我已經計算了單獨的頻譜圖,PxV和PxH對應於垂直和水平分量的地震信號。然後我提取了每個頻譜圖的數據數組(相應於時間點 - 頻率空間的幅度值),並對這些數值應用了一些數學運算,在這種情況下將一個數組除以另一個數組,產生新的數組PxHV。python matplotlib:使用預先計算的光譜數據陣列的光譜圖
如何將我的新數據數組PxHV傳遞給matplotlib,以便與plt.specgram()函數一樣繪製新的數據數組?我相信我可以使用來自PxZ或PxH譜圖的時間和頻率數組(x和y變量),因爲它們對於所有圖都是相同的。
這裏是我的代碼一個簡單的例子:
plt.subplot(411) PxV, freqsV, binsV, imV = plt.specgram(trV.data, NFFT
= 6000, noverlap = 2000, Fs = trV.stats.sampling_rate, detrend = 'mean', mode = 'psd')
plt.title('Vertical')
plt.xlabel('Time [s]')
plt.ylabel('Frequency [Hz]')
plt.clim(-50, 50)
plt.colorbar()
plt.subplot(412) PxE, freqsE, binsE, imE = plt.specgram(trE.data, NFFT
= 6000, noverlap = 2000, Fs = trE.stats.sampling_rate, detrend = 'mean', mode = 'psd')
plt.title('East')
plt.xlabel('Time [s]')
plt.ylabel('Frequency [Hz]')
plt.clim(-50, 50)
plt.colorbar()
plt.subplot(413) PxN, freqsN, binsN, imN = plt.specgram(trN.data, NFFT
= 6000, noverlap = 2000, Fs = trN.stats.sampling_rate, detrend = 'mean', mode = 'psd')
plt.title('North')
plt.xlabel('Time [s]')
plt.ylabel('Frequency [Hz]')
plt.clim(-50, 50)
plt.colorbar()
PxH = np.sqrt(np.multiply(PxE, PxN))
PxHV = np.divide(PxH, PxV)
plt.subplot(414)
**Need code here to pass PxHV "spectrogram array" to matplotlib**
plt.title('H/V')
plt.xlabel('Time [s]')
plt.ylabel('Frequency [Hz]')
plt.colorbar()
plt.show()