介绍ggcorr函数是一个可视化函数,用于将矩阵绘制为ggplot2图片。 为何使用ggcorr包相关矩阵显示相对大量连续变量之间的相关系数。 然而,虽然R提供了一种通过cor函数创建这种矩阵的简单方法,但它没有为该函数创建的矩阵提供绘图方法。ggcorr函数提供了这样的绘图方法,使用ggplot2包中实现的“图形语法”来渲染绘图。 在实践中,其结果在图形上接近于corrplot函数的结果,这是优秀的arm包的一部分。 安装ggcorr可通过GGally包获得: install.packages("GGally") nba = read.csv("http://datasets./ppg2008.csv") head(nba) library(ggplot2) library(GGally) ggcorr(nba)
相关方法ggcorr支持cor函数提供的所有相关方法。该方法由method参数控制。
以下是一些示例,说明如何将不同的关联方法传递给ggcorr: # Pearson correlation coefficients, using pairwise observations (default method) ggcorr(nba[, -1], method = c("pairwise", "pearson")) # Pearson correlation coefficients, using all observations ggcorr(nba[, -1], method = c("everything", "pearson")) # Kendall correlation coefficients, using complete observations ggcorr(nba[, -1], method = c("complete", "kendall")) # Spearman correlation coefficients, using strictly complete observations ggcorr(nba[, -1], method = c("all.obs", "spearman"))
绘制参数其余的这些小插图侧重于如何调整ggcorr绘制的相关矩阵的方面。 控制色标默认情况下,ggcorr使用从-1到+1的连续色标来显示矩阵中表示的每个相关的强度。 要切换到分类颜色,用户所要做的就是添加nbreaks参数,该参数指定颜色标度中应包含的断点数: ggcorr(nba[, 2:15], nbreaks = 5)
对色阶的进一步控制包括name参数(用于设置其标题),legend.size参数(用于设置图例文本的大小)和legend.position参数(用于控制图例的显示位置)。 后两个只是ggplot2主题中相同参数的快捷方式,由于该图是一个ggplot2对象,所有其他相关的主题和指南方法也适用: ggcorr(nba[, 2:15], name = expression(rho), legend.position = "bottom", legend.size = 12) + guides(fill = guide_colorbar(barwidth = 18, title.vjust = 0.75)) + theme(legend.title = element_text(size = 14)) 控制调色板ggcorr使用默认的颜色渐变,从亮红色到浅灰色到亮蓝色。 可以通过low,mid和high参数修改此渐变,这与ggplot2中的scale_gradient2控制器类似: ggcorr(nba[, 2:15], low = "steelblue", mid = "white", high = "darkred") 默认情况下,渐变的中点设置为0,表示无相关关系。 中点参数可用于修改此设置。 特别是,将中点设置为NULL将自动选择中值相关系数作为中点,并将向用户显示该值: ggcorr(nba[, 2:15], midpoint = NULL) 控制色标颜色的最后一个选项是通过palette参数使用ColorBrewer调色板。 但是只有在使用nbreaks参数的前提时,才能使用palette参数: ggcorr(nba[, 2:15], nbreaks = 4, palette = "RdGy") 注意:尝试在颜色标度上使用ColorBrewer调色板时,调色板中的颜色比调色板中的颜色多,将向用户返回警告(实际上是两个相同的警告)。 控制主要形状默认情况下,ggcorr使用颜色来表示相关系数的强度,其方式与热图中的颜色深浅表示观察数值大小的方式类似。但是ggcorr也可以将相关性表示为大小不同的圆圈,只需将其geom参数设置为“circle”: ggcorr(nba[, 2:15], geom = "circle", nbreaks = 5)
在该小插图的末尾示出了对ggcorr的几何形状的附加控制。 控制系数标签ggcorr可以通过将label参数设置为TRUE来在相关图上显示变量之间的确切相关系数: ggcorr(nba[, 2:15], label = TRUE) label_color和label_size参数允许设置系数标签的样式: ggcorr(nba[, 2:15], nbreaks = 4, palette = "RdGy", label = TRUE, label_size = 3, label_color = "white") 控制变量标签在上面的几个例子中,变量标签的渲染(在相关矩阵的对角线上示出)不一定是最佳的。 要修改这些标签的方面,用户所要做的就是将geom_text支持的任何参数直接传递给ggcorr。 下面的示例显示了如何在将标签向左移动并更改颜色时减小标签的大小: ggcorr(nba[, 2:15], hjust = 0.75, size = 5, color = "grey50") 相关矩阵中的变量标签可能出现的一个问题是它们太长而无法在图的左下方完整显示。 如下图所示MIN变量似乎在绘图的最左下角被遮盖了: ggcorr(nba[, 3:16], hjust = 0.75, size = 5, color = "grey50") ![]() 要解决这个问题,ggcorr可以通过layout.exp参数在绘图的水平轴上添加一些空格。 将任何数值传递给此参数将在图的左侧添加一个或多个“不可见的图块”,这可以帮助显示变量名较长的问题: ggcorr(nba[, 3:16], hjust = 0.75, size = 5, color = "grey50", layout.exp = 1) ![]() 其他参数
ggcorr(nba[, 2:15], limits = FALSE) ![]() 设置相关系数的样式如果ggcorr的geom参数设置为“text”,它将相关系数表示为它们的值: ggcorr(nba[, 2:15], geom = "text", nbreaks = 5, palette = "RdYlBu", hjust = 1) ![]() ggcorr(nba[, 2:15], geom = "text", nbreaks = 5, palette = "RdYlBu", hjust = 1, label = TRUE, label_alpha = 0.5) ![]() 控制内部值由于ggcorr生成ggplot2对象,因此理解对象是如何构造的以便从中获取更具体的图可能很有用。 每个ggcorr对象都包含以下数据对象: head(ggcorr(nba[, 2:15])$data, 5) ![]() 在相关图上突出显示较高相关系数如下例所示,其中使用不同颜色的负系数和正系数突出显示优于0.5或低于-0.5的所有相关系数: ggcorr(nba[, 2:15], geom = "blank", label = TRUE, hjust = 0.75) + geom_point(size = 10, aes(color = coefficient > 0, alpha = abs(coefficient) > 0.5)) + scale_alpha_manual(values = c("TRUE" = 0.25, "FALSE" = 0)) + guides(color = FALSE, alpha = FALSE) ![]() |
|