R语言实现成对比较P值热图 类相关矩阵的显著性可视化方案
R语言成对比较P值热图可视化方案
针对多组成对比较P值难以批量可视化、难以全部纳入报告的需求,可通过如下方案生成类似相关矩阵的彩色热图,每个方格内直接展示对应组比较的P值。
基于emmeans包的实现方法
如果你的成对比较是基于emmeans开展,可直接使用如下代码实现:
# 输出紧凑矩阵格式的P值 p.val.test<-pwpm(emmeans(your_model, "your_factor"),means = FALSE, flip = TRUE,reverse = TRUE) # 去除P值中的<、>符号,方便后续数值转换 p.val.test<-sub("[<>]", "", p.val.test) # 转换为矩阵格式,若分组因子有5个水平,则行列数设为5,可按需调整 p.matx<-matrix(as.numeric((p.val.test)),nrow = length(p.val.test[,1]),ncol = length(p.val.test[,1])) # 设置行列名为分组水平名 rownames(p.matx) <- colnames(p.matx) <-colnames(p.val.test) # 隐藏上三角矩阵内容,避免重复展示成对比较结果 p.matx[upper.tri(p.matx, diag=FALSE)] <- NA # 转换长表后绘制热图 melt(p.matx) %>% ggplot(aes(Var1, Var2, fill = value)) + geom_tile() + geom_text(aes(label = value))
注意事项
- 运行代码前需先安装并加载所需依赖包:
emmeans、ggplot2、reshape2 - 代码中的
your_model需替换为你自己拟合的模型对象(如方差分析模型、回归模型等) - 代码中的
your_factor需替换为你要开展成对比较的分组因子名称
内容的提问来源于stack exchange,提问作者learners
相关产品推荐
相关产品推荐

