引力波的绘制

  1. 首先下载需要的数据源:
    链接:https://python123.io/dv/grawave.html
  2. 代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.io import wavfile  #读取波形文件的库

#wavfile.read 用来读取下载好的音频文件
#当文件名里出现有反斜杠等转义字符时,
#使用r可以将其表示为原始的字符串

rate_h,hstrain = wavfile.read(r'H1_Strain.wav','rb')
#将读取的文件赋给速率和数据
rate_l,lstrain = wavfile.read(r'L1_Strain.wav','rb')
reftime,ref_H1 = np.genfromtxt('wf_template.txt').transpose
#读取的reftime直接就是时间序列,ref_H1是信号数据
#genfromtxt执行两个循环,第一个循环是将每一行都转成字符串序列
#第二个循环是将每一个字符串转换成相应的数据类型
#最终得到一个两行的矩阵,但是这样不方便拆分,
#所以先用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)
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))
#创建一个大小为12*6的绘图空间
plth = fig.add_subplot(221)
plth.plot(htime,hstrain,'y')
plth.set_xlabel('Time (seconds)')
plth.set_ylabel('H1 Strain')
plth.set_title('H1 Strain')
#画出以时间为x轴,应变数据为Y轴的图像,并设置标题和坐标轴的标签。

#绘制L1 Strain&Template
pltl = fig.add_subplot(222)
pltl.plot(ltime,lstrain,'g')
pltl.set_xlabel('Time (seconds)')
pltl.set_ylabel('L1 Strain')
pltl.set_title('L1 Strain')

pltref = fig.add_subplot(212)
pltref.plot(reftime,ref_H1)
pltref.set_xlabel('Time (seconds)')
pltref.set_ylabel('Template Strain')
pltref.set_title('Template')

fig.tight_layout()#自动调整图像外部边缘

plt.savefig('Gravitational_Waves_Original.png')
plt.show()
plt.close(fig)

结果:报错
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值