美文网首页数据可视化RR
ggcor绘制相关性热图

ggcor绘制相关性热图

作者: R语言数据分析指南 | 来源:发表于2020-12-05 14:05 被阅读0次

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

    heatmap.png

    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来改进工具稍微提高一下资料检索能力

    相关文章

      网友评论

        本文标题:ggcor绘制相关性热图

        本文链接:https://www.haomeiwen.com/subject/mukgwktx.html