ggcor绘制相关性热图
2020-12-05 本文已影响0人
R语言数据分析指南
不久前收到小伙伴的这样一张图,感觉与corrplot(https://cran.r-project.org/web/packages/corrplot/vignettes/corrplot-intro.html)有相同之处,但是如何绘制左边的线却是无从下手,但作为一个不会轻易放弃的人怎会就此罢休,于是就有了下面的事情;
1. 检索图片
通过google以图搜图的方法,得到了一个叫ggcor的包
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))
heatmap.png
其实我们大多数人本质都是拿来主义,区别就在于是你拿来给他人看,还是看他人如何拿来,因此问题的本质还是靠你强大的资料检索能力,可以参考https://www.jianshu.com/p/07593b4ff534来改进工具稍微提高一下资料检索能力