如何在python中绘制动态频谱?

时间:2019-05-29 09:29:01

标签: python matplotlib

我有一个.bin文件,其中包含来自RTL SDR的扫描数据。该.bin文件具有行和列(扫描和bin)。

我想绘制x轴和y轴的时间与频率的关系,还要绘制第三个参数,该参数由在(x,y)而不是(时间,频率)点的绘制强度指定。 [实际上,我不是想在3D可视化中沿着第三轴向上移动,而是要像2D图那样,第三轴的振幅由(x,y)处的强度(颜色)值控制]。

有人可以建议我寻找与我相似的东西吗?这些图实际上称为动态频谱。我有以下参数,我想针对这些参数在导入的.binfile中绘制数据。

bins = 1024#Enter the no. of bins from your met file
scans =78507  #Enter the no. of scans from your met file
sd = 1.03313 #Scanduration
fs= 2800000
f = np.linspace(1419, 1421, bins) #the start and stop frequencies
d = np.fromfile('/home/astro/Desktop/matlab _files_plotting/H1_Test_25march.bin', dtype = 'float32')# to import bin file

我尝试过

fig= plt.figure()
pan_zoom = PanAndZoom(fig) 
ax = fig.add_subplot(311)
ax.pcolormesh(t, f, d, cmap='Spectral_r') 

plt.imshow(q, extent=(np.amin(t), np.amax(t), np.amin(f), np.amax(f)),origin="lower", norm=LogNorm(), aspect = 'auto')
ax.xaxis.set_minor_locator(mdates.MinuteLocator())
ax.xaxis.set_major_formatter(hfmt) 
hfmt = DateFormatter('%y/%m/%d %H:%M:%S')
plt.grid(True)
plt.gca()
plt.title('Power Spectrum of raw data (25 March,2019)') 
plt.xlabel('Time (LST)')
plt.ylabel('Frequency (MHz)')
plt.gcf().autofmt_xdate()
plt.ylim(1419, 1421)
plt.show()

0 个答案:

没有答案