tcga生信图可视化大全R语言

R语言之可视化(25)绘制相关图(ggcorr包)

2019-06-19  本文已影响328人  柳叶刀与小鼠标

目录

R语言之可视化①误差棒

R语言之可视化②点图

R语言之可视化③点图续

R语言之可视化④点韦恩图upsetR

R语言之可视化⑤R图形系统

R语言之可视化⑥R图形系统续

R语言之可视化⑦easyGgplot2散点图

R语言之可视化⑧easyGgplot2散点图续

R语言之可视化⑨火山图

R语言之可视化⑩坐标系统

R语言之可视化①①热图绘制heatmap

R语言之可视化①②热图绘制2

R语言之可视化①③散点图+拟合曲线

R语言之可视化①④一页多图(1)

R语言之可视化①⑤ROC曲线

R语言之可视化①⑥一页多图(2)

R语言之可视化①⑦调色板

R语言之可视化①⑧子图组合patchwork包

R语言之可视化①⑨之ggplot2中的图例修改

R语言之可视化(20)之geom_label()和geom_text()

R语言之可视化(21)令人眼前一亮的颜色包

R语言之可视化(22)绘制堆积条形图

R语言之可视化(23)高亮某一元素

R语言之可视化(24)生成带P值得箱线图

R语言之可视化(25)绘制相关图(ggcorr包)

介绍

ggcorr函数是一个可视化函数,用于将矩阵绘制为ggplot2图片。

为何使用ggcorr包

相关矩阵显示相对大量连续变量之间的相关系数。 然而,虽然R提供了一种通过cor函数创建这种矩阵的简单方法,但它没有为该函数创建的矩阵提供绘图方法。ggcorr函数提供了这样的绘图方法,使用ggplot2包中实现的“图形语法”来渲染绘图。 在实践中,其结果在图形上接近于corrplot函数的结果,这是优秀的arm包的一部分。

安装

ggcorr可通过GGally包获得:

install.packages("GGally")
nba = read.csv("http://datasets.flowingdata.com/ppg2008.csv")
head(nba)
library(ggplot2)
library(GGally)
ggcorr(nba)

(1)ggcorr的第一个参数叫做输入数据。一般输入数据为数据框dataframe格式。
(2)这里出现了警告,原因是非数字的列是不能狗计算相关性的。因此它做相关性绘图时自动排除了非数字列:‘name’列

相关方法

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将默认为“pearson”。

绘制参数

其余的这些小插图侧重于如何调整ggcorr绘制的相关矩阵的方面。

控制色标

默认情况下,ggcorr使用从-1到+1的连续色标来显示矩阵中表示的每个相关的强度。 要切换到分类颜色,用户所要做的就是添加nbreaks参数,该参数指定颜色标度中应包含的断点数:

ggcorr(nba[, 2:15], nbreaks = 5)

使用nbreaks参数时,颜色标度中显示的位数通过digits参数控制。 digits参数默认为两位数,但如上例所示,如果中断不需要更高的精度,则默认为一位数。

对色阶的进一步控制包括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)

此外,用户可以通过min_size和max_size参数设置圆的最小和最大大小:



在该小插图的末尾示出了对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)
上一篇下一篇

猜你喜欢

热点阅读