相关矩阵可视化 – corrplot() 绘图

浏览: 1188

作者:张光耀,硕士研究生,现就读于中科院心理所

GitHub主页 :https://github.com/usplos

corrplot 是实现相关矩阵可视化的包,在Rstudio中,可直接下载

install.packages(‘corrplot’)

       这里我们使用psych数据包中的USJudgeRatings数据,包含了律师对美国高等法院法官的评分,包含43个观测,12个变量,分别如下。

第一阶段的任务是计算数据框的各个变量的相关矩阵,命令如下:

library(corrplot) # 加载corrplot数据包
library(psych) # 加载psych数据包
corrmatrix = cor(USJudgeRatings, method = ‘pearson’) # 计算相关矩阵,方法为pearson相关
head(corrmatrix)

corrmatrix的数据如下所示:


       包含了12个变量两两配对的相关系数,对角线上的系数为1,因为是变量与自身的相关.

       下一步是通过corrplot() 函数将相关矩阵可视化。命令如下:

rownames(corrmatrix) = paste(1:ncol(USJudgeRatings), names(USJudgeRatings),sep = ' ') # 设置矩阵的行变量名为 <数字 变量名> 的格式
colnames(corrmatrix) = as.character(1:ncol(USJudgeRatings)) # 设置矩阵的列变量名为数字
col3 <- colorRampPalette(c('DodgerBlue3','white', "OrangeRed")) # 返回一个函数col3, 用来设置相关矩阵图的colorbar的分段
corrplot(corrmatrix, method = 'circle', diag = F, type = 'full', outline = F,
        col = col3(20), cl.lim = c(-1,1),addgrid.col = NA,
        tl.pos = 'lb',tl.cex = 0.75, tl.col = 'black', tl.srt = 0, tl.offset = 0.5)
axis(1,at = 1:12, labels = NA, pos = 12.5, tck = -0.01) # 在图片上边添加坐标轴,设置其刻度为位置,标签,画的位置,刻度的朝向
axis(4,at = 1:12, labels = NA, pos = 0.5, tck = -0.01) # 在图片左边添加坐标轴,设置参数同上

生成的图片如下,看出第2 –12个变量之间存在高度的相关,而又和第1个变量的相关较小:

  结合图片解释一下corrplot() 的参数:

  1. corrmatrix – 相关矩阵;

  2. method – 呈现方式,包括circle(默认) – 圆形,square – 方块,ellipse – 椭圆,number – 数字,pie – 饼图,shade – 阴影,color – 颜色;

  3. diag – 是否画对角线,这里设置为不画;

  4. type – 画图的哪一部分,包括full – 全部,lower – 下三角,upper – 上三角;

  5. col – 颜色,默认为由红到蓝,格式为c(bottom, middle, top),bottom – -1处的颜色,middle – 0处的颜色,top – 1处的颜色;这里先用colorRampPalette生成了颜色设置函数col3(number), number – colorbar上分段的数量,这里分了20短,即每0.1为一段;

  6. cl.lim – 颜色的范围,默认为-1到1,注意设置的范围要包含矩阵中的所有数据;

  7. addgrid.col – 网格的颜色,默认为灰色,这里设置为NA,即不画网格;

  8. tl.pos – 坐标轴标签的位置,包括lt – 左边和上边,ld – 左边和对角线,td – 上边和对角线,d – 对角线,n – 不画;这里设置为lt,即行变量名在左边,列变量名在上边;

  9. tl.cex – 标签的大小;

  10. tl.col – 标签的颜色;

  11. tl.srt – 标签旋转的角度;

  12. tl.offset – 标签和图片的相对位置;

  13. hclust.method – 相关系数聚类的方法,默认不聚类,具体方法包括"ward", "ward.D", "ward.D2", "single", "complete", "average", "mcquitty", "median", "centroid",具体读者可自行尝试

  14. outline – 是否画圆圈的边界,默认不画,可为逻辑变量或字符变量(字符变量为设置边界的颜色);

  15. title – 图片的标题。

以上为corrplot()常用的参数,基本上可供读者做出漂亮的相关矩阵图了。

公众号后台回复关键字即可学习

回复 爬虫             爬虫三大案例实战  
回复 Python        1小时破冰入门

回复 数据挖掘      R语言入门及数据挖掘
回复 人工智能      三个月入门人工智能
回复 数据分析师   数据分析师成长之路 
回复 机器学习      机器学习的商业应用
回复 数据科学      数据科学实战
回复 常用算法      常用数据挖掘算法

推荐 0
本文由 R语言中文社区 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册