实践: 课程的示例,引力波的绘制: 资源文件:http://python123.io/dv/grawave.html
import numpy as np import matplotlib.pyplot as plt from scipy.io import wavfile #波形文件 #速率 数据 rate_h,hstrain= wavfile.read(r"H1_Strain.wav","rb") # print(rate_h,hstrain) #print(len(hstrain)) #print(hstrain.shape) rate_l, lstrain = wavfile.read(r'L1_Strain.wav', 'rb') #读取出来 转置 #理论模型 reftime,ref_H1 = np.genfromtxt('wf_template.txt').transpose() #计算出时间间隔 htime_interval = 1/rate_h ltime_interval = 1 / rate_l #计算出单位时间的数据量 htime_len = hstrain.shape[0]/rate_h # 时间坐标原点在中心 绘制时间与数据一一对应 htime = np.arange(-htime_len/2,htime_len/2,htime_interval) # print(len(htime)) ltime_len = lstrain.shape[0] / rate_l ltime = np.arange(-ltime_len/2,ltime_len/2,ltime_interval) #绘制H1 Strain fig = plt.figure(figsize=(12,6)) plth = fig.add_subplot(221) plth.plot(htime,hstrain,'y') plth.set_xlabel("时间(s)",fontproperties="Kaiti") plth.set_ylabel("H1 Strain") plth.set_title("探测器数据1",fontproperties="Kaiti",fontsize=20) #绘制 L1 Strain pltl = fig.add_subplot(222) pltl.plot(ltime,lstrain,'g') pltl.set_xlabel("时间(s)",fontproperties="Kaiti") pltl.set_ylabel("L1 Strain") pltl.set_title("探测数据2",fontproperties="Kaiti",fontsize=20) #绘制标准数据 pltref = fig.add_subplot(212) pltref.plot(reftime,ref_H1) pltref.set_xlabel("时间(s)",fontproperties="Kaiti") pltref.set_ylabel("Template") pltref.set_title("标准数据",fontproperties="Kaiti",fontsize=20) fig.tight_layout() plt.show()