下午好!我试图绘制以下HDF5数据:
这将返回时间(以秒为单位)和应变(没有单位),而绘图是时间的函数。
但是,到目前为止,代码不起作用:
(我已将文件改名为"Hanford")。我该怎么做?
我尝试过的代码,但表示t是未定义的。不确定我是否成功地上传了h5py文件。
import matplotlib.pyplot as plt
import numpy as np
import h5py as h5py
def loadLIGOdata(Hanford):
f = h5py.File(Hanford, "r")
strain = f['strain/Strain'][...]
t0 = f['strain/Strain'].attrs['Xstart']
dt = f['strain/Strain'].attrs['Xspacing']
t = t0 + dt * np.arange(strain.shape[0])
f.close()
return t, strain
plt.plot(t, strain)
plt.show()
发布于 2022-10-27 16:50:12
您需要通过调用loadLIGOdata()函数来定义't‘和’应变‘变量。从您发布的内容来看,Hanford还需要定义为文件路径。在将文件路径更改为Hanford位于计算机上的位置后,以下内容应该可以工作。
import matplotlib.pyplot as plt
import numpy as np
import h5py as h5py
## Change to the path of your Hanford file ##
Hanford = '/path/to/Hanford'
def loadLIGOdata(Hanford):
f = h5py.File(Hanford, "r")
strain = f['strain/Strain'][...]
t0 = f['strain/Strain'].attrs['Xstart']
dt = f['strain/Strain'].attrs['Xspacing']
t = t0 + dt * np.arange(strain.shape[0])
f.close()
return t, strain
t, strain = loadLIGOdata(Hanford)
plt.plot(t, strain)
plt.show()
https://stackoverflow.com/questions/74225069
复制相似问题