ggcor绘制相关性热图

不久前收到小伙伴的这样一张图,感觉与corrplot(https://cran.r-project.org/web/packages/corrplot/vignettes/corrplot-intro.html)有相同之处,但是如何绘制左边的线却是无从下手,但作为一个不会轻易放弃的人怎会就此罢休,于是就有了下面的事情;

ggcor绘制相关性热图_第1张图片
heatmap.png

1. 检索图片

通过google以图搜图的方法,得到了一个叫ggcor的包


ggcor绘制相关性热图_第2张图片
plot1.png

有了工具那就好办了,直接安装R包参考作者教程这是我一贯的套路

2. R包安装

R包一般有2个版本;CRAN官方版与github开发版
R包的安装方法如下所示

install.packages("ggplot2")
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install(version = "3.12")

library("BiocManager")
BiocManager::install("ggplot2")
# install.packages("devtools")
devtools::install_github("tidyverse/ggplot2")

通常一个R包怎么安装作者都会给出安装方法,所以还是参考作者的文档稳妥

3. 提高资料检索技能

问题说到这就显得很简单了,直接安装ggcor包参考教程就能完美出图,听起来很nice但是由于某些因素作者已经删除了源代码只有文档没有工具了,那接下来就是考验资料搜集能力的时刻了,以ggcor R github为关键词进行检索立刻找到源代码完美解决问题。

install.packages("devtools")
devtools::install_github("zlabx/ggcor")
library(tidyverse)
library(ggcor)
data("varechem", package = "vegan")
data("varespec", package = "vegan")

mantel <- mantel_test(varespec, varechem,
                      spec.select = list(Spec01 = 1:7,
                                         Spec02 = 8:18,
                                         Spec03 = 19:37,
                                         Spec04 = 38:44)) %>% 
  mutate(rd = cut(r, breaks = c(-Inf, 0.2, 0.4, Inf),
                  labels = c("< 0.2", "0.2 - 0.4", ">= 0.4")),
         pd = cut(p.value, breaks = c(-Inf, 0.01, 0.05, Inf),
                  labels = c("< 0.01", "0.01 - 0.05", ">= 0.05")))

quickcor(varechem, type = "upper") +
  geom_square() +
  anno_link(aes(colour = pd, size = rd), data = mantel) +
  scale_size_manual(values = c(0.5, 1, 2))+
  guides(size = guide_legend(title = "Mantel's r",
                             order = 2),
         colour = guide_legend(title = "Mantel's p", 
                               order = 1),
         fill = guide_colorbar(title = "Pearson's r", order = 3))
ggcor绘制相关性热图_第3张图片
heatmap.png

其实我们大多数人本质都是拿来主义,区别就在于是你拿来给他人看,还是看他人如何拿来,因此问题的本质还是靠你强大的资料检索能力,可以参考https://www.jianshu.com/p/07593b4ff534来改进工具稍微提高一下资料检索能力

你可能感兴趣的:(ggcor绘制相关性热图)