You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HDF5数据绘图报错t未定义:LIGO引力波数据可视化求助

问题解决:变量t未定义的原因及修复代码

核心问题

你定义了读取数据的loadLIGOdata函数,但没有调用这个函数去获取t和strain变量,导致后续绘图时这两个变量不存在,触发未定义错误。

修正后的完整代码

import matplotlib.pyplot as plt
import numpy as np
import h5py

def loadLIGOdata(file_path):
    # 用with语句自动管理文件资源,无需手动关闭
    with h5py.File(file_path, "r") as f:
        strain = f['strain/Strain'][...]
        t0 = f['strain/Strain'].attrs['Xstart'] 
        dt = f['strain/Strain'].attrs['Xspacing'] 
        t = t0 + dt * np.arange(strain.shape[0]) 
    return t, strain

# 调用函数读取数据,替换为你的Hanford文件实际路径(比如"./Hanford.h5")
t, strain = loadLIGOdata("Hanford")

# 绘制应变-时间曲线
plt.figure(figsize=(12, 6))
plt.plot(t, strain)
plt.xlabel('时间(秒)')
plt.ylabel('应变')
plt.title('LIGO Hanford 引力波应变数据')
plt.show()

额外优化说明

  • 改用with语句处理HDF5文件,避免忘记关闭文件造成的资源泄漏
  • 给函数参数重命名为file_path,提升代码可读性
  • 添加坐标轴标签和标题,让可视化结果更直观

内容的提问来源于stack exchange,提问作者NSA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 16:25:33