其他
ggcorrplot包可视化相关性矩阵的详细教程
在前面的推文中,我们学习了corrplot包可视化相关性矩阵,今天来学习下ggcorrplot包是怎么可视化相关性矩阵的。
与corrplot包相比,ggcorrplot包可视化相关性矩阵的参数差不多一样,但是绘制图形更加美观。
1. 安装和加载R包
install.packages("ggcorrplot") # 安装包
library(ggcorrplot) # 加载包
2. 加载数据集
演示数据集还是选择mtcars数据集,先加载数据集,简单看下数据集的结构和信息。
data(mtcars) # 加载数据集
head(mtcars) # 查看数据集前六行
3. 数据集处理
3.1 计算相关性系数
corr <- round(cor(mtcars), 2) # 计算相关性系数,并保留两位小数
corr # 查看结果
3.2 计算相关性矩阵的p值
可以使用cor_pmat()函数来计算相关性矩阵的P值。
p.mat <- cor_pmat(mtcars) # 计算相关性矩阵的P值
p.mat # 查看结果
4. 简单绘制图形
在前面计算好各种数值后,就可以开始绘制图形了。
ggcorrplot(corr) # 简单绘制
如上图所示,一行代码就简单可视化了相关性矩阵。
还是跟前面一样,红色表示正相关,紫色表示负相关,颜色的深浅跟相关性系数成正比。
下面我们来自定义参数绘制复杂的图形。
5. 自定义参数
5.1 可视化矩阵的方法
在corrplot包中,可视化相关性矩阵的方法有几个,但是在ggcorrplot包中只有两个,可以是设置method = "square"或"circle"来调整可视化矩阵的方法。
# 可视化方法默认为"square",因此我们看看"circle"是什么样的。
ggcorrplot(corr, method = "circle")
5.2 相关性矩阵排序
可以使用hclust函数对相关性矩阵进行层次聚类排序。
ggcorrplot(corr, hc.order = TRUE, # 设置层次聚类排序
outline.color = "white") #
5.3 相关性矩阵布局类型
# 绘制下三角矩阵
ggcorrplot(corr, # 绘图数据
hc.order = TRUE,
type = "lower", # 设置下三角展示
outline.color = "white" # 设置方形轮廓颜色
)
# 绘制上三角矩阵
ggcorrplot(corr,
hc.order = TRUE,
type = "upper", # 设置上三角展示
outline.color = "white" # 设置方形轮廓颜色
)
5.4 调整颜色和主题
包中可选的主题有theme_gray、theme_bw、theme_minimal、theme_classic、theme_void、theme_classic()
等。
ggcorrplot(corr,
hc.order = TRUE,
type = "lower", # 设置下三角矩阵显示
outline.color = "white", # 设置方形轮廓颜色
ggtheme = ggplot2::theme_gray, # 设置图形主题
colors = c("#6D9EC1", "white", "#E46726") # 设置矩阵颜色
)
将theme_gray
换成theme_bw
。
将theme_gray
换成theme_classic()
。
5.5 添加相关性系数
# 设置参数lab = TRUE,添加相关性系数
ggcorrplot(corr,
hc.order = TRUE, type = "lower",
lab = TRUE,
ggtheme = ggplot2::theme_dark(),
)
5.6 添加相关性显著水平
# 设置参数p.mat,不显示无意义的相关性系数
ggcorrplot(corr,
hc.order = TRUE,
type = "lower", p.mat = p.mat)
# 设置insig = "blank",擦除无意义的相关性系数
ggcorrplot(corr,
p.mat = p.mat, hc.order = TRUE,
type = "lower", insig = "blank")
5.7 调整小数位数
ggcorrplot(cor(mtcars),
type = "lower",
insig = "blank",
lab = TRUE,
digits = 3) # 默认小数位数为2位
5.8 设置图例属性
ggcorrplot(corr,
show.legend = F # 不显示图例
)
ggcorrplot(corr,
show.legend = T, # 默认显示图例
legend.title = "图例标题" # 设置图例标题
)
参考资料
ggcorrplot包帮助文件