表述生物学的意义的过程中我们离不开相关性图的绘制,相关性图的绘制非常的重要,散点图、线性图还会有炫酷的类似热图的形式呈现相关性分析是常用的手段。相关性表示两组数据之间的关系是否“相似”或“相近”;遇到多组数据时,相关性图就可以清晰的表明多组数据之间的关系。今天小果带你把相关性分析的数据做的漂亮。
corrgram包绘制
#安装加载包
install.packages(“corrgram”)
library(corrgram)
# 查看数据集
head(iris)
corrgram(iris)
# 加载 corrgram 包
library(corrgram)
# 使用 mtcars 数据集
data(mtcars)
head(mtcars)
# 绘制相关性图
corrgram(mtcars, order=TRUE, lower.panel=panel.shade,
upper.panel=panel.ellipse, diag.panel=panel.minmax,
main=”Correlation Matrix Plot of mtcars Data”)
lower.panel=panel.shade: 这个选项用于指定相关性图的下层面板绘制方式。panel.shade会绘制底层面板,通过颜色来代表相关性的强弱。颜色越浅表示相关性越强,颜色越深表示相关性越弱。
upper.panel=panel.ellipse: 这个选项用于指定相关性图的上层面板绘制方式。panel.ellipse会绘制上层面板,通过椭圆形来展示相关性的概率分布。椭圆形的大小和形状表示相关性的强度和方向。
diag.panel=panel.minmax: 这个选项用于指定对角线上的面板绘制方式。panel.minmax会在对角线的面板中展示每个变量的最小值和最大值。
可以根据自己的需求选择合适的绘图方式。
用corrplot包绘制
# 安装并加载corrplot包,提供了两种安装软件包的方式,BiocManager安装会更好用一些,遇到安装中跳出“Do you want to install from sources the package which needs compilation? (Yes/no/cancel) ”的语句都输入“y”即可。这是因为一些依赖的包需要安装
install.packages(“corrplot”)
BiocManager::install(“corrplot”)
library(corrplot)
# 创建一个包含三个变量的相关性矩阵
corr_matrix <- matrix(c(1, 0.6, 0.3,
0.6, 1, 0.8,
0.3, 0.8, 1), nrow = 3)
# 绘制相关性图
corrplot(corr_matrix, method = “circle”)
#用R中自带的数据集mtcars再尝试一个例子
head(mtcars)
#计算“pearson”来计算相关性
M <- cor(mtcars,method = “pearson”)
head(M)
corrplot(M)
下面跟着小果一起调节一些参数来保证图片的美观性叭~
1、标签性质
corrplot(M, method = “circle”,
tl.col = “black”, tl.cex = 0.8, tl.srt = 30)
#调标题颜色,tl标签的的性质tl.col = “black”,大小 tl.cex = 1.2,角度 tl.srt = 45
2、绘图类型和位置
corrplot(M, method = “pie”,
type = “upper”,
tl.col = “black”, tl.cex = 1.2, tl.srt = 45
)
#method和type还有很多选项哦,可以都尝试一下
#method = c(“circle”, “square”, “ellipse”, “number”, “shade”, “color”, “pie”)
#type = c(“full”, “lower”, “upper”)
- 组合式绘制
corrplot(M, method = “ellipse”, type = “upper”,
tl.col = “black”, tl.cex = 0.8, tl.srt = 45,tl.pos = “lt”)
corrplot(M, method = “number”, type = “lower”,
tl.col = “n”, tl.cex = 0.8, tl.pos = “n”,
add = T)
#上边绘制椭圆形的相关性,下边标出相关性的指数,其实就分别画两个图,第二个图加一个命令add = T,代表叠加。
4、调一个色彩盘
library(RColorBrewer)
addcol <- RColorBrewer::brewer.pal(12,”Set3″)
corrplot(M, method = “pie”, type = “upper”,col = addcol,
tl.col = “black”, tl.cex = 0.8, tl.srt = 45,
tl.pos = “lt”)
corrplot(M, method = “number”, type = “lower”,col = addcol,
tl.col = “n”, tl.cex = 0.8, tl.pos = “n”,
add = T)
小果的审美不是很好,读者们可以根据自己的喜好,寻找一些颜色上的美感呀~
#添加统计学意义星号
这里添加的是常用的P值,标注显著性
ddcol <- RColorBrewer::brewer.pal(12,”Paired”)
testRes = cor.mtest(M, menthod = “pearson”, conf.level = 0.95)
corrplot(M, method = “color”, col = addcol,
tl.col = “black”, tl.cex = 0.8, tl.srt = 45,tl.pos = “lt”,
p.mat = testRes$p, diag = T, type = ‘upper’,
sig.level = c(0.001, 0.01, 0.05), pch.cex = 1.2,
insig = ‘label_sig’, pch.col = ‘grey20’, order = ‘AOE’)
corrplot(M, method = “number”, type = “lower”,col = addcol,
tl.col = “n”, tl.cex = 0.8, tl.pos = “n”,order = ‘AOE’,
add = T)
附:
小果想把这个函数的具体参数和用法放在这里
corrplot(corr,
method = c(“circle”, “square”, “ellipse”, “number”, “shade”, “color”, “pie”),
type = c(“full”, “lower”, “upper”), add = FALSE,
col = NULL, bg = “white”, title = “”, is.corr = TRUE,
diag = TRUE, outline = FALSE, mar = c(0,0,0,0),
addgrid.col = NULL, addCoef.col = NULL, addCoefasPercent = FALSE,
order = c(“original”, “AOE”, “FPC”, “hclust”, “alphabet”),
hclust.method = c(“complete”, “ward”, “single”, “average”,
“mcquitty”, “median”, “centroid”),
addrect = NULL, rect.col = “black”, rect.lwd = 2,
tl.pos = NULL, tl.cex = 1,
tl.col = “red”, tl.offset = 0.4, tl.srt = 90,
cl.pos = NULL, cl.lim = NULL,
cl.length = NULL, cl.cex = 0.8, cl.ratio = 0.15,
cl.align.text = “c”,cl.offset = 0.5,
addshade = c(“negative”, “positive”, “all”),
shade.lwd = 1, shade.col = “white”,
p.mat = NULL, sig.level = 0.05,
insig = c(“pch”,”p-value”,”blank”, “n”),
pch = 4, pch.col = “black”, pch.cex = 3,
plotCI = c(“n”,”square”, “circle”, “rect”),
lowCI.mat = NULL, uppCI.mat = NULL, …)
corr:需要可视化的相关系数矩阵
method:指定可视化的方法,可以是圆形、方形、椭圆形、数值、阴影、颜色或饼图形
type:指定展示的方式,可以是完全的、下三角或上三角(“full”,“upper”和”lower”)
col:指定图形展示的颜色,默认以均匀的颜色展示
bg:指定图的背景色
title:为图形添加标题
is.corr:是否为相关系数绘图,默认为TRUE,同样也可以实现非相关系数的可视化,只需使该参数设为FALSE即可
diag:是否展示对角线上的结果,默认为TRUE
outline:是否绘制圆形、方形或椭圆形的轮廓,默认为FALSE
mar:具体设置图形的四边间距
addgrid.col:当选择的方法为颜色或阴影时,默认的网格线颜色为白色,否则为灰色
addCoef.col:为相关系数添加颜色,默认不添加相关系数,只有方法为number时,该参数才起作用
addCoefasPercent:为节省绘图空间,是否将相关系数转换为百分比格式,默认为FALSE
order:指定相关系数排序的方法,可以是原始顺序(original)、特征向量角序(AOE)、第一主成分顺序(FPC)、层次聚类顺序(hclust)和字母顺序,一般”AOE”排序结果都比”FPC”要好
hclust.method:当order为hclust时,该参数可以是层次聚类中ward法、最大距离法等7种之一
addrect:当order为hclust时,可以为添加相关系数图添加矩形框,默认不添加框,如果想添加框时,只需为该参数指定一个整数即可
rect.col:指定矩形框的颜色
rect.lwd:指定矩形框的线宽
tl.pos:指定文本标签(变量名称)的位置,当type=full时,默认标签位置在左边和顶部(lt),当type=lower时,默认标签在左边和对角线(ld),当type=upper时,默认标签在顶部和对角线,d表示对角线,n表示不添加文本标签
tl.cex:指定文本标签的大小
tl.col:指定文本标签的颜色
cl.pos:图例(颜色)位置,当type=upper或full时,图例在右表®,当type=lower时,图例在底部,不需要图例时,只需指定该参数为n
addshade:只有当method=shade时,该参数才有用,参数值可以是negtive/positive和all,分表表示对负相关系数、正相关系数和所有相关系数添加阴影。注意:正相关系数的阴影是45度,负相关系数的阴影是135度
shade.lwd:指定阴影的线宽
shade.col:指定阴影线的颜色
如果你在作图中有问题,可以借助一些网上的云作图工具来实现http://www.biocloudservice.com/home.html
好了,这样我们相关分析就做完了。小伙伴们如果有什么问题就和小果讨论吧。