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

基于R语言CCF值绘制物种对流量响应象限图的方法咨询

实现方案

1 批量提取每个物种的CCF统计量

我们可以直接调用ccf()时设置plot=FALSE不输出绘图,直接提取计算结果,批量整理为结构化数据框,无需手动录入数值:

# 自定义参数
lag_max <- 5 # 最大滞后阶数

# 按物种拆分数据
df.split <- split(df, df$Commonname, drop = TRUE)

# 初始化结果存储表
ccf_stats <- data.frame(
  species = character(),
  max_lag = integer(),
  max_ccf = numeric(),
  significant = logical(),
  stringsAsFactors = FALSE
)

# 遍历每个物种计算CCF
for (sp in names(df.split)) {
  sp_df <- df.split[[sp]]
  # 计算CCF,不绘图
  ccf_res <- ccf(sp_df$CPUE, sp_df$Discharge, lag.max = lag_max, plot = FALSE)
  
  # 仅保留正滞后(流量变化在前,物种丰度变化在后,可根据需求删除此过滤)
  pos_filter <- ccf_res$lag >= 0
  lag_vals <- ccf_res$lag[pos_filter]
  ccf_vals <- ccf_res$acf[pos_filter]
  
  # 找到相关系数绝对值最大的对应位置
  max_idx <- which.max(abs(ccf_vals))
  target_lag <- lag_vals[max_idx]
  target_ccf <- ccf_vals[max_idx]
  
  # 计算95%置信水平下的显著性阈值
  sig_threshold <- 2 / sqrt(nrow(sp_df))
  is_sig <- abs(target_ccf) > sig_threshold
  
  # 写入结果表
  ccf_stats <- rbind(ccf_stats, data.frame(
    species = sp,
    max_lag = target_lag,
    max_ccf = target_ccf,
    significant = is_sig
  ))
}

运行后得到的ccf_stats就是包含所有物种滞后位置、对应相关系数、显著性标识的结构化表。

2 绘制象限图

我们用ggplot2实现需求中的绘图效果,显著物种自动加*标识:

library(ggplot2)

# 生成物种标签,显著项加*
ccf_stats$label <- ifelse(ccf_stats$significant, 
                          paste0(ccf_stats$species, "*"), 
                          ccf_stats$species)

ggplot(ccf_stats, aes(x = max_lag, y = max_ccf)) +
  # 绘制散点
  geom_point(size = 2, color = "#2c3e50") +
  # 标注物种名称
  geom_text(aes(label = label), nudge_x = 0.08, size = 3, hjust = 0) +
  # 设置坐标轴范围
  xlim(0, lag_max) +
  ylim(-1, 1) +
  # 加象限分割虚线
  geom_hline(yintercept = 0, linetype = "dashed", color = "gray60") +
  geom_vline(xintercept = lag_max/2, linetype = "dashed", color = "gray60") +
  # 坐标轴标注
  labs(x = "响应滞后时长", y = "最大滞后相关系数") +
  theme_bw()

如果需要用相关系数绝对值作为y轴,只需将绘图逻辑中的y = max_ccf改为y = abs(max_ccf),同时将ylim(-1,1)改为ylim(0,1)即可。130个物种标注拥挤的话可以调小文本字号,或者使用交互式绘图工具避免标签重叠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:12:01