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

如何在R中绘制多数字序列的小波相干图(附数据)

R 4.2.1 绘制堆叠式小波相干图解决方案

第一步:处理序列长度不一致问题

小波相干分析要求输入序列长度完全一致,你的4条序列长度分别为30、35、23、35,先通过线性插值把短序列补到最长的35个观测值:

# 读取Sequences.txt文件
sequences <- readLines("Sequences.txt")
# 将每行转换为数值向量
seq_list <- lapply(sequences, function(line) as.numeric(strsplit(line, "\\s+")[[1]]))

# 统一序列长度到35(最长序列的长度)
max_len <- max(sapply(seq_list, length))
library(zoo)
aligned_seqs <- lapply(seq_list, function(x) {
  approx(seq_along(x), x, xout = 1:max_len)$y
})

第二步:用biwavelet绘制堆叠式相干图

设置4行1列的绘图布局,循环绘制每条序列的小波相干图(这里以序列自身为参考,若需要和其他参考序列对比,替换代码中对应的序列即可):

library(biwavelet)

# 配置绘图布局:4行1列,调整边距避免重叠
par(mfrow = c(4, 1), mar = c(3, 4, 2, 1))

# 循环绘制每条序列的相干图
for (i in 1:4) {
  # 计算小波相干(这里用序列自身做对比,如需和其他序列,替换第二个aligned_seqs[[i]])
  wc_obj <- wc(cbind(aligned_seqs[[i]], aligned_seqs[[i]]))
  # 绘图,添加序列编号标题
  plot(wc_obj, main = paste("序列", i, "的小波相干图"), xlab = "", ylab = "尺度")
}

# 统一添加底部x轴标签
mtext("时间", side = 1, line = 2, outer = TRUE)

关键说明

  • 若需要绘制两条不同序列间的相干图,只需将wc(cbind(aligned_seqs[[i]], aligned_seqs[[i]]))中的第二个序列替换为目标序列(比如aligned_seqs[[1]]作为公共参考)
  • mar参数可根据实际显示效果调整边距,避免标题、坐标轴重叠
  • 如果sowas包更适配你的需求,同样先做序列长度对齐,再调用其相干分析函数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 01:15:06