R语言绘制热图corrplot包
时间:2020-08-13 来源:生信自学网 作者:刘鑫
微信公众号:biowolf_cn 点击:次
R语言绘制热图corrplot包corrplot包简介官方文档The corrplot package is a graphical display of a correlation matrix, confidence interval. It also contains some algorithms to do matrix reordering. In addition, corrplot is good at details, including choosing color, text labels, color labels, layout, etc. 简单地说,corrplot包主要针对相关系数输出的结果进行可视化,可以实现选择颜色,文本标签,颜色标签,布局等的操作。 语法和常用参数介绍函数语法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:指定阴影线的颜色 实践实践数据还是使用上一篇中画相关系数的数据。(1)准备数据集 首先还是加载数据集:all_data all_data为数据框格式,共包含9696996行,5列(5个样本),如下图所示。 ![]() 为每列指定列名 colnames(all_data) <- c( 's1', 's2','s3 ', 's4','s5') (2)计算样本间的相关系数 matrix <- cor (all_data[1:5]) 这里我想补充一下cor()函数的用法(这里主要参考了第二篇参考资料)。在R语言中,通常使用cor函数进行相关系数分析,可以分别指定向量,也可以指定给cor函数一个数据框。 基本语法 cor(x,y=NULL,use="everything",method= c("pearson","kendall","spearman")) use 用来指定处理缺失值的方式,可以为"everything", “all.obs”, “complete.obs”, “na.or.complete”, 或者 “pairwise.complete.obs”. method 是可选的三种相关系数计算方法,默认情况下使用的是pearson相关系数。 这三种计算相关系数简介: pearson相关系数:即皮尔逊相关系数,用于横向两个连续性随机变量间的相关系数。 spearman相关系数:即斯皮尔曼相关系数,用于衡量分类定序变量间的相关程度。 kendall相关系数:即肯德尔相关系数,也是一种秩相关系数,不过它所计算的对象是分类变量。 (3)corrplot包对相关系数输出的结果进行可视化 #直接画图,不设置其它参数 corrplot(corr=matrix) ![]() 控制单元格形状和内容 # 换用不同method,分别显示数字和颜色(method can be "circle", "square", "ellipse", "number", "shade", "color", "pie") # method 默认为“circle” corrplot(M, method = "number") corrplot(matrix, method = "color") ![]() ![]() 控制单元格展示的方式以及混合展示 #指定展示的方式,可以是完全的、下三角或上三角 corrplot(matrix, type = "upper") ![]() # corrplot.mixed()可以混合可视化样式 #默认上三角为circle,下三角为number,可以修改 corrplot.mixed(matrix) corrplot.mixed(matrix, lower = "ellipse", upper = "pie") ![]() ![]() corrplot.mixed(matrix, lower = "number", upper = "pie", tl.col = "black",lower.col = "black", number.cex = 1) #tl.col 修改对角线的颜色,lower.col 修改下三角的颜色,number.cex修改下三角字体大小 ![]() 指定order方式 #指定order按hclust聚类方式排序,addrect是添加分组矩形,可自定义分组类 corrplot(matrix,order = "hclust",addrect = 3) ![]() #当order = "hclust"时,可使用hclust.method选择层次聚类的方法 #hclust.method可以为“complete”, “ward”, “single”, “average”, “mcquitty”, “median”, “centroid” corrplot(matrix,order = "hclust",addrect = 3,hclust.method="ward.D2") ![]() 图例标签控制 #图例标签控制 corrplot(matrix, method="number",order = "AOE", cl.pos = "n", tl.pos = "n") #控制对角标签旋转45度 corrplot(matrix, type = "lower", order = "hclust", tl.col = "black", tl.srt = 45) #修改图例范围 corrplot(matrix,order = "AOE", cl.lim = c(0, 1)) ![]() ![]() ![]() #改变单元格颜色以及背景颜色bg col3 <- colorRampPalette(c("red", "white", "blue")) corrplot(matrix, order = "hclust", addrect = 3, col = col3(100), bg = "lightblue") ![]() summary总结一下,corrplot包使用起来非常简单,也有很多参数可以画出各种花哨的图……甚至可以做显著性检验(我的数据结果都很好,也很少,就没有做)和月亮的阴晴圆缺(具体参见参考资料3和官方文档)。但是,最大的缺点: 没办法同时作层次聚类的树图,考虑到这点,我还是喜欢pheatmap多一点,虽然它不是专门画相关系数的图。 最后,用这个包画一个生物相关论文中常见的相关系数图: corrplot(corr=matrix,method = "color",order = "hclust",tl.col="black",addrect=4,addCoef.col = "grey") ![]() ![]() (责任编辑:伏泽 微信:18520221056) ![]() |
- 上一篇:Window安装基因集富集分析软件GSEA
- 下一篇:细胞浸润不同工具包的比较