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

分组因子成对比较所得p值绘制热图的实现方法咨询

实现方案

首先加载所需依赖包:

library(tidyverse)
library(rstatix)
library(ggplot2)

步骤1:计算成对检验结果并格式化

你原有代码得到的检验结果是长格式,需要先转为对称的热图适配格式,同时完成显著性区间划分:

# 先保存成对检验结果
p_result <- data %>%
  group_by(site) %>%
  t_test(variable ~ organism) %>%
  select(site, group1, group2, p.adj) # 选用校正后p值做展示

# 转为热图所需对称格式+划分显著性区间
heatmap_data <- p_result %>%
  # 补全反向比较结果(A和B比较的p值与B和A一致)
  bind_rows(
    p_result %>% rename(group1 = group2, group2 = group1)
  ) %>%
  # 补全对角线项(自身比较的p值统一设为1,也可按需设为NA)
  bind_rows(
    expand_grid(site = unique(p_result$site),
                group1 = unique(p_result$group1),
                group2 = unique(p_result$group1)) %>%
      filter(group1 == group2) %>%
      mutate(p.adj = 1)
  ) %>%
  # 按要求划分显著性区间
  mutate(sig_level = case_when(
    p.adj < 0.001 ~ "p < 0.001",
    p.adj < 0.01 ~ "p < 0.01",
    p.adj < 0.05 ~ "p < 0.05",
    TRUE ~ "p ≥ 0.05"
  )) %>%
  # 固定行列顺序,保证热图展示逻辑一致
  mutate(
    group1 = factor(group1, levels = c("Insects", "Mammals", "Reptiles")),
    group2 = factor(group2, levels = c("Insects", "Mammals", "Reptiles")),
    sig_level = factor(sig_level, levels = c("p ≥ 0.05", "p < 0.05", "p < 0.01", "p < 0.001"))
  )

步骤2:绘制显著性热图

可以按site分面同时展示两个站点的结果,也可以筛选单个站点单独绘图:

ggplot(heatmap_data, aes(x = group1, y = group2, fill = sig_level)) +
  geom_tile(color = "white", size = 1) +
  # 叠加p值文本,按需保留
  geom_text(aes(label = round(p.adj, 4)), size = 3.5) +
  # 按站点分面,不需要分面的话删掉此行+filter筛选单个site即可
  facet_wrap(~site) +
  # 自定义显著性颜色,越显著颜色越深
  scale_fill_brewer(palette = "Reds", direction = 1) +
  labs(x = "物种分类", y = "物种分类", fill = "显著性水平") +
  theme_bw(base_size = 12) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1),
        panel.grid = element_blank())

可选:导出纯矩阵格式

如果需要输出类似pwpm函数的矩阵结果,可通过以下代码转换:

# 以SITE1为例输出p值矩阵
site1_p_matrix <- heatmap_data %>%
  filter(site == "SITE1") %>%
  pivot_wider(id_cols = group1, names_from = group2, values_from = p.adj) %>%
  column_to_rownames("group1") %>%
  as.matrix()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:39:03