美文网首页画图plotR plot
ggcorrplot相关系数可视化-R语言

ggcorrplot相关系数可视化-R语言

作者: M78_a | 来源:发表于2021-12-20 19:24 被阅读0次

    使用参考:https://rpkgs.datanovia.com/ggcorrplot/
    我只是跟着这个ggcorrplot包的文档教程学习了一遍。
    这个包使用起来非常easy!

    ggcorrplot包可以使用ggplot2轻松可视化相关系数矩阵。
    一个矩阵的两列之间,可以算出相关系数。
    还可以同时计算出相关系数和p值。

    参数

    Usage
    ggcorrplot(corr, method = c("square", "circle"), type = c("full",
      "lower", "upper"), ggtheme = ggplot2::theme_minimal, title = "",
      show.legend = TRUE, legend.title = "Corr", show.diag = FALSE,
      colors = c("blue", "white", "red"), outline.color = "gray",
      hc.order = FALSE, hc.method = "complete", lab = FALSE,
      lab_col = "black", lab_size = 4, p.mat = NULL, sig.level = 0.05,
      insig = c("pch", "blank"), pch = 4, pch.col = "black",
      pch.cex = 5, tl.cex = 12, tl.col = "black", tl.srt = 45,
      digits = 2)
    
    cor_pmat(x, ...)
    

    参数很多,使用的时候,最基本的就是那么几个。

    data(mtcars)#这里使用的是R语言自带的一个数据集合,你使用的时候换成自己的就行。
    corr <- round(cor(mtcars), 1)#算相关系数的核心函数
    p.mat <- cor_pmat(mtcars)#算p-values
    ggcorrplot(
      corr,
      p.mat = p.mat,
      hc.order = TRUE,
      type = "lower",
      insig = "blank",
      outline.color = "white",
      ggtheme = ggplot2::theme_gray,
      colors = c("#6D9EC1", "white", "#E46726")
    )
    #画图
    #corr相关系数变量;
    #p.mat p值变量
    #hc.erder是否聚类
    #显示上半部分还是下半部分
    #insig不显著的用白色框表示
    #图中的框边为白色
    #ggtheme
    #colors配色
    
    image.png

    图中颜色深浅表示相关性强弱,白色表示不相关。

    安装

    install.packages("ggcorrplot")
    
    # Install
    if(!require(devtools)) install.packages("devtools")
    devtools::install_github("kassambara/ggcorrplot")
    

    如果第一种方法不能安装,请使用第二种。我当时用第一种方法显示缺失lib。

    加载

    library(ggcorrplot)
    

    开始

    mtcars数据集将在下面的R代码中使用。函数cor_pmat()[在ggcorrplot中]计算相关p值的矩阵。

    # Compute a correlation matrix
    data(mtcars)
    corr <- round(cor(mtcars), 1)
    head(corr[, 1:6])
    #>       mpg  cyl disp   hp drat   wt
    #> mpg   1.0 -0.9 -0.8 -0.8  0.7 -0.9
    #> cyl  -0.9  1.0  0.9  0.8 -0.7  0.8
    #> disp -0.8  0.9  1.0  0.8 -0.7  0.9
    #> hp   -0.8  0.8  0.8  1.0 -0.4  0.7
    #> drat  0.7 -0.7 -0.7 -0.4  1.0 -0.7
    #> wt   -0.9  0.8  0.9  0.7 -0.7  1.0
    
    # Compute a matrix of correlation p-values
    p.mat <- cor_pmat(mtcars)
    head(p.mat[, 1:4])
    #>               mpg          cyl         disp           hp
    #> mpg  0.000000e+00 6.112687e-10 9.380327e-10 1.787835e-07
    #> cyl  6.112687e-10 0.000000e+00 1.802838e-12 3.477861e-09
    #> disp 9.380327e-10 1.802838e-12 0.000000e+00 7.142679e-08
    #> hp   1.787835e-07 3.477861e-09 7.142679e-08 0.000000e+00
    #> drat 1.776240e-05 8.244636e-06 5.282022e-06 9.988772e-03
    #> wt   1.293959e-10 1.217567e-07 1.222320e-11 4.145827e-05
    

    corr()函数计算矩阵每个列之间的两两相关性质,假设你有两列数据,那么计算结果就是2*2的系数矩阵。
    round()函数是保留相关系数几个小数点位数
    cor_pmat()计算每个列之间的相关系数的p值

    相关性系数矩阵的可视化

    这便是该包的核心功能

    # Visualize the correlation matrix
    # --------------------------------
    # method = "square" (default)
    ggcorrplot(corr)
    
    image.png

    图中颜色深浅表示从负相关到正相关的程度
    但是不够好看!

    下面是圈形的

    # method = "circle"
    ggcorrplot(corr, method = "circle")
    
    image.png
    #使用聚类和排序
    # Reordering the correlation matrix
    # --------------------------------
    # using hierarchical clustering
    ggcorrplot(corr, hc.order = TRUE, outline.color = "white")
    
    image.png
    #只显示半边
    # Types of correlogram layout
    # --------------------------------
    # Get the lower triangle
    ggcorrplot(corr,
               hc.order = TRUE,
               type = "lower",#这个参数upper或者为lower
               outline.color = "white")
    
    image.png image.png
    #配色,美化
    
    # Change colors and theme
    # --------------------------------
    # Argument colors
    ggcorrplot(
      corr,
      hc.order = TRUE,
      type = "lower",
      outline.color = "white",
      ggtheme = ggplot2::theme_gray,
      colors = c("#6D9EC1", "white", "#E46726")
    )
    
    image.png
    #在图上添加相关系数
    
    # Add correlation coefficients
    # --------------------------------
    # argument lab = TRUE
    ggcorrplot(corr,
               hc.order = TRUE,
               type = "lower",
               lab = TRUE)
    
    image.png
    #增加相关性p值,不显著的打叉
    # Add correlation significance level
    # --------------------------------
    # Argument p.mat
    # Barring the no significant coefficient
    ggcorrplot(corr,
               hc.order = TRUE,
               type = "lower",
               p.mat = p.mat)
    
    image.png
    
    
    # Leave blank on no significant coefficient
    ggcorrplot(
      corr,
      p.mat = p.mat,
      hc.order = TRUE,
      type = "lower",
      lab=TRUE,
      insig = "blank",
    )
    

    还可以把不相关的用空白表示


    image.png

    相关文章

      网友评论

        本文标题:ggcorrplot相关系数可视化-R语言

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