相关矩阵可视化-神颜R包!

2022-03-29 12:20:35 浏览数 (1)

导语

GUIDE ╲

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

背景介绍

在进行生物信息学分析的过程中,经常需要通过计算得到一些连续变量的相关性矩阵,这种相关系数可以通过R语言自带的cor函数得到,但是R并没有对矩阵提供可视化方法。最近小编在阅读文献的时候发现了一些漂亮的相关性图,在这里分享给大家。同时我们也一起学习一下如何才能绘制出像高分文章中一样漂亮的相关性图!

Single-cell analysis reveals transcriptomic remodellings in distinct cell types that contribute to human prostate cancer progression.Nature cell biology.

A single-cell landscape of high-grade serous ovarian cancer.Nature Medicine.

今天小编就将给大家分享一个精美的R语言绘制相关系数矩阵的软件包:ggcorr。ggcorr函数主要用于绘制相关矩阵图,它的主要依赖包是ggplot2。它使用ggplot2包中的“grammar of graphics”来实现可视化,其结果在图形上接近corrplot函数的结果。如果大家想了解ggcorr的最新版本,可以访问https://github.com/briatte/ggcorr,同时也可以查找到关于如何使用它的许多例子。

ggcorr的安装

ggcorr可以通过安装GGally包来获得

代码语言:javascript复制
###下载安装###
install.packages("GGally")
library(GGally)
library(ggplot2)##依赖包为ggplot2

ggcorr的使用

01

函数介绍

代码语言:javascript复制
ggcorr(
  data,##包含连续数据的数据框或矩阵
  method = c("pairwise", "pearson"),##一个包含两个字符串的向量
  cor_matrix = NULL,##用于计算的命名相关矩阵
  nbreaks = NULL,##相关系数的中断数,将产生分类色阶
  digits = 2,##在相关系数的中断处显示的位数,默认为2
  name = "",##图例的名称
  low = "#3B9AB2",##低相关系数颜色
  mid = "#EEEEEE",##中相关系数颜色
  high = "#F21A00",##高相关系数颜色
  midpoint = 0,##相关系数连续标度的中点值
  palette = NULL,
  geom = "tile",##几何对象
  min_size = 2,##当geom设置为“圆”时,圆的最小尺寸。
  max_size = 6,##当geom设置为“圆”时,圆的最大尺寸。
  label = FALSE,##是否向绘图中添加相关系数。
  label_alpha = FALSE,##当相关系数接近0时,是否使其变得越来越透明。
  label_color = "black",##相关系数的颜色
  label_round = 1,##相关系数的四舍五入
  label_size = 4,##相关系数的大小
  limits = c(-1, 1),##相关系数上下限
  drop = is.null(limits) || identical(limits, FALSE),
  layout.exp = 0,
  legend.position = "right",##相关系数的图例在哪里,默认在下
  legend.size = 9,##图例标题和标签的大小
  ...
)

02

绘图实例

使用自带的mtcars数据作为样本

代码语言:javascript复制
##获取mtcars数据##
data=mtcars
##查看数据格式##
head(data)

首先使用ggcorr函数对每一列之间绘制相关性图

代码语言:javascript复制
ggcorr(data)
##在这里我没有定义第二个参数,函数默认使用pearson计算

默认情况下,出图的色标是渐变色,如果想要调整成为若干个色阶,可以通过如下参数调整:

代码语言:javascript复制
ggcorr(data,nbreaks = 4)###将颜色分为四个色阶

调色板功能:在绘图中,可以通过调节low、mid、high参数来调节相关性系数对应的颜色

代码语言:javascript复制
ggcorr(data,low = "blue",mid = "grey",high = "red")#定义相关性最低为蓝色,中间水平为灰色,最高为红色

在ggcorr画图结果中,相关系数不仅可以通过颜色表示,还可以直接显示具体数值,方便用户比较:

代码语言:javascript复制
ggcorr(data,nbreaks = 4, label = TRUE)

在作图的时候,有的小伙伴会更喜欢使用圆圈来代表相关系数的高低,那么可以通过geom参数来改变:

代码语言:javascript复制
ggcorr(data,nbreaks = 4, geom = "circle")#geom=”circle”设置相关系数为圆圈,geom=”text”可将相关系数设置为文
代码语言:javascript复制
ggcorr(data, geom = "text", nbreaks = 4, palette = "RdYlBu",hjust = 1, label = TRUE, label_alpha = 0.5)

调整标签的字体及颜色:

代码语言:javascript复制
ggcorr(data, geom = "text",hjust = 0.75, size = 3.5, color = "darkblue")#调节标签大小为3.5,颜色诶深蓝色

03

结果展示

介绍了这么多,就让我们一起整合ggcorr的各种参数,去绘制一幅漂亮的相关性矩阵图吧!

代码语言:javascript复制
ggcorr(
  data,
  method = c("pairwise", "pearson"),
  digits = 2,
  name = "",
  low = "#3B9AB2",
  mid = "#EEEEEE",
  high = "#F21A00",
  midpoint = 0,
  palette = NULL,
  geom = "text",
  min_size = 2,
  max_size = 6,
  label = FALSE,
  label_alpha = FALSE,
  label_color = "grey",
  label_round = 1,
  label_size = 4,
  limits = c(-1, 1),
  layout.exp = 0,
  legend.position = "right",
  legend.size = 9,
)

小编总结

1、ggcorr可以看作ggplot2包的扩展,能够绘制常用的相关性矩阵图形。

2、ggcorr应用比较简单,制图精美,可以满足我们绘制漂亮的相关性图形的需求。

了解了这么多,大家可以将它应用于实际,去绘制属于自己的相关性图啦!

0 人点赞