今天学习下相关性矩阵的可视化,可以用来可视化相关性矩阵的包有corrplot包、corrgram包、GGally包、ggcorrplot包等,这些包在大部分情况下都可以满足需求。今天先来学习corrplot包的使用,后面几天有空会详细讲解下另外三个包。


目  录

  • 1. 安装和加载R包

  • 2. 加载数据集

  • 3. 数据处理

    • 3.1 转换矩阵

    • 3.2 计算相关系数

  • 4. 简单绘制

  • 5. 自定义参数

    • 5.1 可视化方法

    • 5.2 矩阵显示类型

    • 5.3 绘制组合图形

    • 5.4 相关矩阵排序

    • 5.5 设置矩阵颜色

    • 5.6 设置文本标签属性

    • 5.7 设置图例属性

    • 5.8 设置图形外观

    • 5.9 设置显著水平


1. 安装和加载R包

corrplot包可以用来可视化相关矩阵,这个包中的参数很多,可以很详细的自定义图形。

第一步先安装和加载好R包。

install.packages("corrplot") # 安装包library(corrplot) # 加载包

2. 加载数据集

使用mtcars内置数据集进行演示,先加载包,看下数据集的信息。

data(mtcars) # 加载数据集head(mtcars, 10) # 查看数据集前10行

3. 数据处理

在使用mtcars数据集绘制图形前需要对数据集进行一些简单处理。

3.1 转换矩阵

绘图前可以将数据集转换为矩阵,当然,我也看到很多推文没有将数据集转换成矩阵,一样可以绘制图形,这一步也许可以省略。

mtcars # 转化为矩阵

3.2 计算相关系数

在绘制图形前,先计算下相关系数,可以使用cor()函数,函数中有"pearson", "kendall", "spearman"三种方法计算,我们选择默认的"pearson"方法即可。

cor_mtcars 'pearson')cor_mtcars

4. 简单绘制

先简单绘制个基本图形,我们在后面慢慢调整参数自定义图形。

corrplot(cor_mtcars)

如上图所示,一行代码就简单绘制出了图形。

在上图中,正相关用蓝色显示,负相关用红色显示。颜色强度和圆圈的大小与相关系数成正比。

下面我们开始慢慢调整参数设置图形。

5. 自定义参数

5.1 可视化方法

在上图中,可视化的方法method参数默认为"circle",也就是圆形显示。还可以使用"square","ellipse","number","pie","shade"和"color"显示,分别表示方形、椭圆形、数字、饼图、阴影、颜色。

layout(matrix(1:6, 2, 3)) # 分割绘图设备

corrplot(cor_mtcars, method = "square") # 方形corrplot(cor_mtcars, method = "ellipse") # 椭圆形corrplot(cor_mtcars, method = "number") # 数字corrplot(cor_mtcars, method = "pie") # 饼图corrplot(cor_mtcars, method = "shade") # 阴影corrplot(cor_mtcars, method = "color") # 颜色

5.2 矩阵显示类型

在基础图形中,矩阵显示为全矩阵显示,可以设置type参数为"lower"和"upper",来分别显示上三角和下三角矩阵。

layout(matrix(1:2, 1, 2)) # 分割绘图设备

corrplot(cor_mtcars, type = "lower") # 下三角矩阵corrplot(cor_mtcars, type = "upper") # 上三角矩阵

5.3 绘制组合图形

在上面我们可以绘制出上三角和下三角矩阵图形,然后可以使用add参数来绘制组合图形。

add为TRUE则可以图形添加到现有图形中。

corrplot(cor_mtcars, method = "square",          type = "lower") # 下三角矩阵corrplot(cor_mtcars, method = "pie",          type = "upper", add = TRUE) # 上三角矩阵

如上图所示,先绘制一个下三角图形,再将上三角图形添加到图形上。

5.4 相关矩阵排序

在corrplot包中,使用order参数设置相关性矩阵排序,排序方法有original(默认)、AOE、FPC、hclust、alphabet等5种。

我们看看其他四种排序是什么样的。

layout(matrix(1:4, 2, 2)) # 分割绘图设备

corrplot(cor_mtcars, order = "AOE") # 特征向量角序corrplot(cor_mtcars, order = "FPC") # 第一主成分顺序corrplot(cor_mtcars, order = "hclust") # 按层次聚类corrplot(cor_mtcars, order = "alphabet") # 按字母顺序

当order为"hclust"按层次聚类时,层次聚类方法也有几种,有"ward", "ward.D", "ward.D2", "single", "complete", "average", "mcquitty", "median"或"centroid"等,可以使用hclust.method参数来指定。

同时也可以设置addrect参数来设置可视化矩阵上聚类矩形的数量,为NULL时默认不添加矩形。

可以使用rect.col、rect.lwd参数来设置聚类矩形的颜色和线宽。

layout(matrix(1:6, 2, 3)) # 分割绘图设备

corrplot(cor_mtcars, order = "hclust", # 按层次聚类         hclust.method = "ward.D2") #层次聚类方法corrplot(cor_mtcars, order = "hclust",          hclust.method = "median") corrplot(cor_mtcars, order = "hclust",          hclust.method = "single") corrplot(cor_mtcars, order = "hclust",          hclust.method = "complete",          addrect = 2) # 设置聚类矩形的数量corrplot(cor_mtcars, order = "hclust",          hclust.method = "average",          addrect = 2, rect.col = "red")  # 设置聚类矩形的颜色corrplot(cor_mtcars, order = "hclust",          hclust.method = "mcquitty",          addrect = 4, rect.lwd = 3) # 设置聚类矩形的线宽

5.5 设置矩阵颜色

使用col参数来设置颜色,还可以使用bg参数设置背景颜色。

layout(matrix(1:3, 1, 3)) # 分割绘图设备col = colorRampPalette(c('blue', 'white', 'red'))(40)corrplot(cor_mtcars, method = "color")corrplot(cor_mtcars, method = "color", col = col) # 矩阵颜色corrplot(cor_mtcars, method = "circle", bg = "grey") # 背景颜色

还可以设置其他的颜色。

layout(matrix(1:6, 2, 3)) # 分割绘图设备corrplot(cor_mtcars, order = "hclust", col = heat.colors(100))corrplot(cor_mtcars, order = "hclust", col = terrain.colors(100))corrplot(cor_mtcars, order = "hclust", col = cm.colors(100))corrplot(cor_mtcars, order = "hclust", col = gray.colors(100))library(RColorBrewer)corrplot(cor_mtcars, order = "hclust", col = brewer.pal(n = 8, name = "RdYlBu"))corrplot(cor_mtcars, col = brewer.pal(n = 8, name = "PuOr"))

5.6 设置文本标签属性

layout(matrix(1:4, 2, 2)) # 分割绘图设备corrplot(cor_mtcars, tl.pos = "n") # 不显示文本标签corrplot(cor_mtcars, tl.pos = "lt") # 在左边和顶部显示corrplot(cor_mtcars, tl.cex = 1.5) # 设置文本标签的缩放倍数corrplot(cor_mtcars, tl.col = "black") # 设置文本标签的颜色

5.7 设置图例属性

颜色标签,也就是图形旁边的图例,可以使用cl.pos、cl.cex、cl.ratio、cl.align.text、cl.offset等参数来设置。

5.7.1 设置图例位置

corrplot(cor_mtcars, cl.pos = "n") # 不显示图例corrplot(cor_mtcars, cl.pos = "r") # 图例放在右边corrplot(cor_mtcars, cl.pos = "b") # 图例放在底部

5.7.2 设置图例文本属性

corrplot(cor_mtcars, cl.cex = 1.5) # 设置图例中数字标签的缩放倍数corrplot(cor_mtcars, cl.ratio = 2.0) # 数字,设置图例的宽度corrplot(cor_mtcars, cl.align.text = "l") # 字符,设置图例中的数字标签的对齐方式

5.8 设置图形外观

可以设置图形的标题、四边间距、网格线等。

layout(matrix(1:4, 2, 2)) # 分割绘图设备

corrplot(cor_mtcars, mar = c(2.2, 2.6,2.8,1.9)) # 设置图形四边间距corrplot(cor_mtcars, addgrid.col = "black") # 设置网格线corrplot(cor_mtcars, outline = "black") # 设置圆形、椭圆形等外边框corrplot(cor_mtcars, tl.pos = "n",          title  = "R语言统计与绘图 公众号") # 添加图形标题

5.9 设置显著水平

可以在图形上显示显著性水平。

layout(matrix(1:4, 2, 2)) # 分割绘图设备res1 .95)

corrplot(cor_mtcars, p.mat = res1$p,          sig.level = .2) # 设置p值>0.2的不显示corrplot(cor_mtcars, p.mat = res1$p,          sig.level = .05) # 设置p值>0.05的不显示corrplot(cor_mtcars, p.mat = res1$p,          insig = "blank") # 擦除p值>0.05的相关系数,设置为空白corrplot(cor_mtcars, p.mat = res1$p,          insig = "p-value")

参考资料

  1. corrplot()函数帮助文件

既往专辑

相关系数矩阵计算_corrplot包:相关性矩阵可视化相关推荐

  1. R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、使用rotate参数指定进行斜交旋转提取因子、使用fa.diagram函数可视化斜交旋转因子分析、并解读可视化图形

    R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵).使用rotate参数指定进行斜交旋转提取因子.使用fa.diagram函数可视化斜交旋转因子分析.并解读可视化图形 目 ...

  2. R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、使用rotate参数指定进行斜交旋转提取因子、使用factor.plot函数可视化斜交旋转因子分析、并解读可视化图形

    R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵).使用rotate参数指定进行斜交旋转提取因子.使用factor.plot函数可视化斜交旋转因子分析.并解读可视化图形 ...

  3. R语言可视化:散点图、散点图和折线图(line charts)、3D散点图、旋转3D散点图、气泡图、corrgram包可视化相关性矩阵、马赛克图( Mosaic plots)、hexbin、密度图

    R语言可视化:散点图.散点图和折线图(line charts).3D散点图.旋转3D散点图.气泡图.corrgram包可视化相关性矩阵.马赛克图( Mosaic plots).hexbin.密度图 目 ...

  4. python绘制相关性矩阵_python seaborn heatmap可视化相关性矩阵实例

    方法import pandas as pd import numpy as np import seaborn as sns df = pd.DataFrame(np.random.randn(50) ...

  5. R语言使用psych包进行探索性因子分析EFA、使用cov2cor函数将原始数据的协方差矩阵将其转换为相关性矩阵( covariance matrix into correlation matrix)

    R语言使用psych包进行探索性因子分析EFA.使用cov2cor函数将原始数据的协方差矩阵将其转换为相关性矩阵( covariance matrix transform into correlati ...

  6. R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、使用rotate参数指定进行斜交旋转提取因子、使用nfactors参数指定抽取的因子个数、fa函数因子分析结果解读

    R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵).使用rotate参数指定进行斜交旋转提取因子.使用nfactors参数指定抽取的因子个数.fa函数因子分析结果解读(  ...

  7. R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、使用rotate参数指定进行斜交旋转提取因子、并获取因子分数、因子得分系数(scoring coefficients)

    R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵).使用rotate参数指定进行斜交旋转提取因子.并获取因子分数.因子得分系数(factor scores.scoring ...

  8. R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、使用nfactors参数指定抽取的因子的个数、fa函数因子分析结果解读(Extracting common facto

    R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵).使用nfactors参数指定抽取的因子的个数.fa函数因子分析结果解读(Extracting common facto ...

  9. R语言psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、指定进行正交旋转、斜交旋转提取因子、比较正交旋转和斜交旋转之间的差异、因子结构矩阵、因子模式矩阵和因子相关矩阵之间的关系

    R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵).使用rotate参数指定进行正交旋转.斜交旋转提取因子.比较正交旋转和斜交旋转之间的差异.因子结

最新文章

  1. 《预训练周刊》第16期:中科院推出全球首个图文音三模态预训练模型、顶会论文探索100层序列推荐模型的加速训练...
  2. Cisco Catalyst交换机密码恢复策略
  3. Jrebel最新激活破解方式
  4. php抢购排队是怎样做的,基于swoole的抢购排队通用中间件,适合抢购秒杀场景,跟具体业务解耦...
  5. doorway path issue of my task in HCP
  6. 前端 input怎么显示null_小猿圈WEB前端之HTML5+CSS3面试题(一)
  7. Linux的system()和popen()差异
  8. 老师只喜欢好学生(转)
  9. NeurIPS 2020 | 基于“单目标域样本”的领域自适应方法
  10. python函数实例化_Python中的__new__()方法与实例化
  11. BZOJ2366 : 多重历史
  12. 页面库无法捕获到Added事件?
  13. 信号检测与估计(1)
  14. 小白学 Python 爬虫(18):Requests 进阶操作
  15. Tk-Mybatis(通用mybatis)简单使用
  16. GIS开发:客户端控制的地图样式
  17. 【渝粤题库】陕西师范大学200891教育心理学作业(高起本)
  18. mysql 关闭防火墙 命令_CentOS7关闭防火墙命令
  19. 隐马尔科夫模型模型:原理、实现
  20. map和filter方法对于稀缺数组的处理

热门文章

  1. Android快速开发框架XUtils
  2. 树莓派lnmp安装mysql_在树莓派上安装 LNMP
  3. android tcpdump log分析,android 系统启动过程中加入tcpdump和logcat
  4. cesium 经纬度绘制点_NCL绘制2016年1号台风(Nepartak)
  5. shell -eom_EOM的完整形式是什么?
  6. LTNS的完整形式是什么?
  7. Java BufferedWriter close()方法与示例
  8. 在Python3中将字符串转换为字节的最佳方法
  9. scala 获取数组中元素_从Scala中的元素列表中获取随机元素
  10. squid服务配置(正向、反向代理)