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

使用参考: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语言)