快捷搜索:  汽车  科技

数据可视化最大值和最小值(R数据可视化)

数据可视化最大值和最小值(R数据可视化)corrplot(mat method="circle" type="lower")那如何将不同图形混合绘制呢?corrplot(mat method="circle" type="upper")下三角mat<-cor(mtcars) corrplot(mat method="circle")square:方形corrplot(mat method="square")ellipse:椭圆corrplot(mat method="ellipse")number:数值corrplot(mat method="number")shade:阴影corrplot(mat method="shade")color:热图corrplot(mat meth

前言

前面,我们介绍了如何使用 ggplot2 来绘制相关系数图,这节,我们将介绍用 corrplot 包绘制相关系数图

corrplot 主要用于图形化展示相关系数矩阵、置信区间,同时还包含一些矩阵排序算法。同时能够以简单的方式,选择颜色、文本标签和布局等

安装导入

if(!require(corrplot)){ install.packages("corrplot") } library(corrplot)可视化方法

corrplot 包含 7 种可视化方法,可使用 method 参数来进行选择,参数值如下

  1. circle:圆形

mat<-cor(mtcars) corrplot(mat method="circle")

数据可视化最大值和最小值(R数据可视化)(1)

  1. square:方形

corrplot(mat method="square")

数据可视化最大值和最小值(R数据可视化)(2)

  1. ellipse:椭圆

corrplot(mat method="ellipse")

数据可视化最大值和最小值(R数据可视化)(3)

  1. number:数值

corrplot(mat method="number")

数据可视化最大值和最小值(R数据可视化)(4)

  1. shade:阴影

corrplot(mat method="shade")

数据可视化最大值和最小值(R数据可视化)(5)

  1. color:热图

corrplot(mat method="color")

数据可视化最大值和最小值(R数据可视化)(6)

  1. pie:饼图

corrplot(mat method="pie")

数据可视化最大值和最小值(R数据可视化)(7)

默认情况下,使用红蓝两种颜色,正相关显示为蓝色,负相关为红色,颜色的强度和图形的大小与相关性成正比

布局方式

corrplot 有三种布局方式,通过 type 参数设置

  1. full: 默认值,绘制整个相关系数矩阵
  2. upper: 绘制上三角矩阵
  3. lower: 绘制下三角矩阵

例如,上三角

corrplot(mat method="circle" type="upper")

数据可视化最大值和最小值(R数据可视化)(8)

下三角

corrplot(mat method="circle" type="lower")

数据可视化最大值和最小值(R数据可视化)(9)

那如何将不同图形混合绘制呢?

corrplot 提供了一个封装函数 corrplot.mixed,用于绘制混合图形

该函数通过 lower upper 两个参数指定上下三角的类型,例如

corrplot.mixed(mat)

数据可视化最大值和最小值(R数据可视化)(10)

默认绘制上三角为圆形下三角为数字的图形

设置对角线标签放置的位置 tl.pos 和对角线图像类型 diag

tl.pos 可以是 lt、d、n,分别表示放在左侧、对角线或不显示

diag 可以是 u、l、n 分别表示与上、下三角一致或不绘制

corrplot.mixed(mat tl.pos="lt" diag='l')

数据可视化最大值和最小值(R数据可视化)(11)

设置颜色,其中 tl.col 为对角线标签颜色,lower.col 和 upper.col 分别表示上、下三角的颜色

library(RColorBrewer) corrplot.mixed(mat lower="ellipse" upper="circle" tl.col="black" lower.col=brewer.pal(5 "Spectral") upper.col=brewer.pal(5 "Set2"))

数据可视化最大值和最小值(R数据可视化)(12)

矩阵重排

我们可以根据相关系数对矩阵进行重排,从矩阵中找到隐藏的结构和模式。

corrplot 有 4 种排序方法,通过 order 参数设置:

  • AOE:特征向量的角度顺序
  • FPC:第一主成分顺序
  • hclust:层次聚类的顺序,可以使用 hclust.method 参数设置距离度量方法
  • alphabet:字母表顺序

corrplot(mat order="AOE")

数据可视化最大值和最小值(R数据可视化)(13)

corrplot(mat order="hclust")

数据可视化最大值和最小值(R数据可视化)(14)

对于 hclust 方式,可以为聚类结果绘制矩形,使用 addrect 参数来指定需要绘制矩形的数量

corrplot(mat order="hclust" hclust.method="median" addrect=3)

数据可视化最大值和最小值(R数据可视化)(15)

根据聚类结果,将颜色设置为 3 种,同时更改背景色

corrplot(mat order="hclust" hclust.method="median" addrect=3 col=brewer.pal(3 "Set1") bg=brewer.pal(7 "Set2")[7])

数据可视化最大值和最小值(R数据可视化)(16)

设置文本标签及图例

cl.* 参数是设置颜色图例的参数,tl.* 是设置文本图例的参数

例如,tl.col 和 tl.srt 用来设置文本标签的颜色和旋转

corrplot(mat order="FPC" cl.pos="b" tl.srt=45)

数据可视化最大值和最小值(R数据可视化)(17)

corrplot(mat order="FPC" cl.ratio=0.2 cl.align="l")

数据可视化最大值和最小值(R数据可视化)(18)

corrplot(mat order="hclust" type="lower" tl.pos='d' tl.cex=1.25 tl.srt=45 tl.col="black")

数据可视化最大值和最小值(R数据可视化)(19)

缺失值处理

默认情况下,corrplot 会将 NA 值渲染为 ? 可以使用 na.label 参数设置 NA 值的显示

mat2<-mat diag(mat2)<-NA corrplot(mat2)

数据可视化最大值和最小值(R数据可视化)(20)

corrplot(mat2 na.label="*")

数据可视化最大值和最小值(R数据可视化)(21)

plotmath 表达式

可以在文本标签前面加上 :、=、$ 字符前缀,来激活 plotmath 表达式渲染

mat2<-mat[1:5 1:5] colnames(mat2)<-c("alpha" "beta" ":alpha beta" ":a[0]" "=a[beta]") rownames(mat2)<-c("alpha" "beta" NA "$a[0]" "$a[beta]") corrplot(mat2)

数据可视化最大值和最小值(R数据可视化)(22)

添加显著性检验

我们还可以在图像中添加显著性信息。首先,使用 cor.mtest 计算显著性 p 值和置信区间

>pmat<-cor.mtest(mtcars conf.level=.95) >str(pmat) Listof3 $p:num[1:11 1:11]0.006.11e-109.38e-101.79e-071.78e-05... $lowCI:num[1:11 1:11]1-0.926-0.923-0.8850.436... $uppCI:num[1:11 1:11]1-0.716-0.708-0.5860.832...

然后将计算结果中的 p 值传递给 p.mat 参数,同时设置显著性水平 sig.level,高于该值的相关系数被认为是不显著的

corrplot(mat p.mat=pmat$p sig.level=0.05)

数据可视化最大值和最小值(R数据可视化)(23)

可以看到,不显著的相关系数被画 Ⅹ 了,我们可以设置 insig = "blank" 不显示不显著的点

corrplot(mat p.mat=pmat$p sig.level=0.05 insig="blank")

数据可视化最大值和最小值(R数据可视化)(24)

insig 参数还支持其他值

  • pch: 默认值
  • p-value: 显示 p 值
  • n: 不做任何操作
  • label_sig: 用 pch 参数的值来表示显著性,默认是星号

搭配 sig.level 使用,按照等级绘制多个 *

corrplot(mat p.mat=pmat$p sig.level=c(.001 .01 .05) insig="label_sig" pch.cex=0.9 pch.col="white")

数据可视化最大值和最小值(R数据可视化)(25)

pch 参数可以设置显著的点的显示文本

corrplot(mat p.mat=pmat$p sig.level=0.05 pch="p<0.05" insig="label_sig" pch.cex=0.7 pch.col="white")

数据可视化最大值和最小值(R数据可视化)(26)

显示置信区间

根据上一步计算出的置信上下限,我们可以展示变量之间的置信区间

使用 lowCI.mat 和 uppCI.mat 来设置置信区间的上下限,使用 plotCI 参数来设置显示的图形,支持 n(不显示) square circle rect 四种类型

corrplot(mat lowCI.mat=pmat$lowCI uppCI.mat=pmat$uppCI order="hclust" plotCI="rect" cl.pos="n")

数据可视化最大值和最小值(R数据可视化)(27)

最后,需要说明的一点是,该包不只是针对相关系数矩阵,也可以绘制其他类型的矩阵

例如

ran<-round(matrix(runif(225 -100 100) 15)) corrplot(ran is.corr=FALSE method="ellipse" cl.lim=c(-100 100))

数据可视化最大值和最小值(R数据可视化)(28)

如果行列数不一致,可以使用 win.asp 参数将图形调整为正方形

ran<-matrix(rnorm(70) ncol=7) corrplot(ran is.corr=FALSE win.asp=.7 method="circle")

数据可视化最大值和最小值(R数据可视化)(29)



猜您喜欢: