大数跨境
0
0

R中绘制相关性热图的若干方法

R中绘制相关性热图的若干方法 R语言数据分析指南
2025-05-28
0

欢迎关注R语言数据分析指南

本节来介绍相关性热图的两种绘制方法,使用vegan包内置数据集来进行代码演示,个人观点仅供参考。有需要学习R语言绘图的朋友可关注文末介绍购买小编的R绘图文档。购买前请咨询,零基础不要买。

加载R包

library(tidyverse)
library(reshape)
library(psych)
library(RColorBrewer)
library(magrittr)
library(corrplot)
library(vegan)

相关性分析

需要注意两组数据的行名要保持一致

# vegan内置数据集
data("varespec")
data("varechem")
table1 <- varechem %>% select(1:10)
table2 <- varespec %>% select(1:19)

pp <- corr.test(table1, table2, method = "spearman",adjust = "none")
cor <- pp$r
pvalue <- pp$p

corrplot绘制热图

# 定义颜色
col <- colorRampPalette(brewer.pal(11"RdBu")[3:9])(100)

corrplot(pp$r, p.mat = pp$p,          # 输入相关矩阵和p值矩阵
         method = "square",            # 正方形方式展示
         insig = 'label_sig',           # 用符号标注显著结果
         sig.level = c(0.0010.010.05), # 显著性分级
         pch.cex = 0.9,                    # 星号的大小
         pch.col = "white",                # 星号颜色
         is.corr = FALSE,                  # 非标准相关矩阵
         cl.length = 6,                    # 图例分段数
         col = col,                        # 色带颜色设置
         tl.col = "black",                 # 标签颜色
         tl.cex = 0.7)                     # 标签大小

ggplot2绘制热图

跟corrplot比较ggplot的代码相对较多,但是若后期需要进行图形组合及一些特殊的自定义设置,此方法仍然是首选,若只是想快速绘制一个基础的热图则首推corrplot。

# 构建数据
df <- melt(cor) %>%
  mutate(pvalue=melt(pvalue, as.is = TRUE)[[3]],
         p_signif=symnum(pvalue, corr = FALSE, na = FALSE,
                         cutpoints = c(00.0010.01,0.05,1),
                         symbols = c("***""**""*"""))) %>%
  set_colnames(c("env","genus","r","p","p_signif"))
# 绘制热图
df %>% ggplot(.,aes(genus,env))+
  geom_tile(color="black",fill="white",size=0.3) +
  geom_point(aes(size =abs(r),color=r),shape=15,stroke = 0) +
  geom_text(aes(label=p_signif),size=4,color="white",
            hjust=0.5,vjust=0.7) +
  labs(x = NULL,y = NULL)+
  scale_color_gradientn(colours =col)+
  scale_x_discrete(expand=c(0,0)) +
  scale_y_discrete(expand=c(0,0),position = 'right') +
  scale_size(range=c(1,8),guide=NULL) +
# 修改图例属性
  guides(color=guide_colorbar(title = "spearman's r",
                              position = "right")) +
  theme_test() +
  theme(axis.text.x=element_markdown(angle =90,
        hjust =1,vjust =0.5,color="black"),
        axis.text.y=element_text(color="black"),
        axis.ticks= element_blank(),
        plot.margin = margin(0.3,0.3,0.3,1,unit = "cm"),
        panel.background = element_blank(),
        legend.background = element_blank(),
        legend.key.height = unit(1,"null"))

关注下方公众号下回更新不迷路

购买介绍

本节介绍到此结束,有需要学习R数据可视化的朋友欢迎到淘宝店铺:R语言数据分析指南,购买小编的R语言可视化文档,2025年购买将获取2025年更新的内容,同时将赠送2024年的绘图文档内容

更新的绘图内容包含数据+代码+注释文档+文档清单,小编只分享案例文档,不额外回答问题,无答疑服务,更新截止2025年12月31日结束,零基础不推荐买。

案例特点

所选案例图绝大部份属于个性化分析图表,数据案例多来自已经发表的高分论文,并会汇总整理分享一些论文中公开的分析代码。
2025年起提供更加专业的html文档,更加的直观易学。文档累计上千人次购买拥有良好的社群交流体验,R代码结构清晰易懂.

目录大纲展示

群友精彩评论

淘宝店铺

2025年更新案例图展示

)

2024年案例图展示

【声明】内容源于网络
0
0
R语言数据分析指南
R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
内容 1180
粉丝 0
R语言数据分析指南 R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
总阅读410
粉丝0
内容1.2k