R绘制相关性链接线热图(优化版)

科技   2024-10-13 21:54   陕西  

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

本节来绘制一个常见的相关性热图,图形与往常一样无过多变化。此次在代码上做了些许调整,可自定义调整的细节更多。下面小编就通过一个案例来进行介绍,数据为随意构建无实际意义,整个过程仅供参考。数据稍后会上传到交流群内,购买过小编绘图文档的朋友可在所加的交流群内获取下载,有需要的朋友可关注文末介绍购买小编的R绘图文档。购买前请咨询,零基础不要买。

结果展示

优化点

1.通过一个巧妙的方式,将Y轴文本移动到图中间位置
2.增加链接点修改点属性的代码
3.通过ggplot长表格的方式绘制相关性及p值
整体个代码过程还是比较有新意,认真学习一番定有收获

代码展示

library(tidyverse)
library(RColorBrewer)
library(ggtext)
library(magrittr)
library(reshape)
library(psych)
# install.packages("devtools")
# devtools::install_github("Hy4m/linkET", force = TRUE)
library(linkET)
library(ggnewscale)
library(corrplot)
varechem <- read_tsv("varechem.xls") %>% column_to_rownames(var="id")

table1 <- varechem %>% rownames_to_column(var="id") %>% 
  pivot_longer(-id) %>% 
  pivot_wider(values_from = value) %>% 
  column_to_rownames(var="id")

varespec <- read_tsv("varespec.xls") %>% column_to_rownames(var="id"


mantel <- mantel_test(varespec, table1,
                      spec_select = list(Spec01 = 1:7,
                                         Spec02 = 8:18,
                                         Spec03 = 19:20)) %>% 
  mutate(rd = cut(r, breaks = c(-Inf0.20.4Inf),
                  labels = c("< 0.2""0.2 - 0.4"">= 0.4")),
         pd = cut(p, breaks = c(-Inf0.010.05Inf),
                  labels = c("< 0.01""0.01 - 0.05"">= 0.05")))
qcorrplot(correlate(table1,method = "pearson"),
  diag=T,type="lower",grid_col = "white")+
  geom_square() +
  geom_text(data=p_value,aes(id,name,label=p_signif),inherit.aes = F,vjust=1)+
  guides(size="none")+
  scale_size_continuous(range = c(0,10)) +
  new_scale("size")+
  scale_fill_gradientn(colors=rev(COL2('RdBu',10)),na.value = "white")+
  geom_couple(aes(colour=pd,size=rd),data=mantel,
              label.colour = "black",
              curvature=nice_curvature(),
              label.fontface=0,
              label.size =3.5,drop = T,
              node.colour = c("white""white"),
              node.fill = c("#984EA3","#5785C1"),
              node.size = c(4.5,4),
              node.shape=c(23,21))+
  coord_cartesian(clip="off")+
  scale_size_manual(values = c(0.5,1,2))+
  scale_colour_manual(values = c("#984EA3""#4DAF4A""grey"))+
  guides(fill = guide_colorbar(title = "pearson's r",order = 1),
         color = guide_legend(title = "*P* value",order = 2,
                              theme = theme(legend.title = 
                                              element_markdown(color="black"))),
         size = guide_legend(title = "mantel's r",order = 3))+
  theme(plot.margin = unit(c(0.5,0,0.5,0.5),units="cm"),
        axis.text.y=element_blank(),
        axis.text.x=element_markdown(size=9,color=c(rep("black",13),"white")),
        axis.ticks =element_blank(),
        panel.background = element_blank(), 
        legend.key = element_blank(), 
        legend.background = element_blank())

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

购买介绍

本节介绍到此结束,有需要学习R数据可视化的朋友欢迎到淘宝店铺:R语言数据分析指南,购买小编的R语言可视化文档(2024版),购买将赠送2023年的绘图文档内容。目前此文档(2023+2024)已经更新上传200案例文档,每个案例都附有相应的数据和代码,并配有对应的注释文档,方便大家学习和参考。

2024更新的绘图内容将同时包含数据+代码+注释文档+文档清单,2023无目录仅有数据文件夹,小编只分享案例文档,不额外回答问题,无答疑服务,零基础不推荐买。

案例特点

所选案例图均属于个性化分析图表完全适用于论文发表,内容异常丰富两年累计发布案例图200+,2024年6月起提供html版注释文档更加直观易学。文档累计上千人次购买拥有良好的社群交流体验。R代码结构清晰易懂,为防止中文乱码提供单独的注释文档

群友精彩评论

淘宝店铺

2024年已更新案例图展示


R语言数据分析指南
R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
 最新文章