R語言繪圖包系列:
- R語言繪圖包01--優(yōu)秀的拼圖包patchwork
- R語言繪圖包02--熱圖pheatmap
- R語言繪圖包03--火山圖EnhancedVolcano
- R語言繪圖包04--GOplot:富集分析結果可視化
- R語言繪圖包05--韋恩圖的繪制:ggvenn和VennDiagram
1. 安裝
install.packages('corrplot')
2. 用法和參數(shù)
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"),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, number.cex = 1,
number.font = 2, number.digits = NULL,
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", "label_sig"),
pch = 4, pch.col = "black",pch.cex = 3,
plotCI = c("n", "square","circle", "rect"), lowCI.mat = NULL,
uppCI.mat = NULL, na.label = "?",
na.label.col = "black", win.asp = 1, ...)
參數(shù)
參數(shù)(常用) | 用法 |
---|---|
corr | 用于繪圖的矩陣,必須是正方形矩陣纳决,如果是普通的矩陣得院,需要設置is.corr=FALSE |
method | 可視化的方法臀栈,默認是圓circle,還有正方形square、橢圓ellipse疗韵、數(shù)字number、陰影shade侄非、顏色color和餅pie可選 |
type | 展示類型蕉汪,默認全顯full,還有下三角lower逞怨,或上三角upper可選 |
col | 指定圖形展示的顏色者疤,默認以均勻的顏色展示 |
bg | 指定圖的背景色 |
title | 為圖形添加標題 |
is.corr | 邏輯值,是否為相關系數(shù)繪圖叠赦,默認為TRUE驹马,同樣也可以實現(xiàn)非相關系數(shù)的可視化,只需使該參數(shù)設為FALSE |
diag | 是否顯示對角線值除秀。因為對角線全為1糯累,顯示只是美觀,實際意義不大册踩,默認為TRUE |
outline | 是否繪制圓形泳姐、方形或橢圓形的輪廓,默認為FALSE |
mar | 具體設置圖形的四邊間距 |
addgrid.col | 當選擇的方法為顏色或陰影時暂吉,默認的網(wǎng)格線顏色為白色胖秒,否則為灰色 |
addCoef.col | 為相關系數(shù)添加顏色,默認不添加相關系數(shù)慕的,只有方法為number時阎肝,該參數(shù)才起作用 |
addCoefasPercent | 為節(jié)省繪圖空間,是否將相關系數(shù)轉換為百分比格式肮街,默認為FALSE |
order | 指定相關系數(shù)排序的方法风题,可以是原始順序(original)、特征向量角序(AOE)低散、第一主成分順序(FPC)俯邓、層次聚類順序(hclust)和字母順序,一般”AOE”排序結果都比”FPC”要好熔号。 |
hclust.method | 當order為hclust時稽鞭,該參數(shù)可以是層次聚類中ward法、最大距離法等7種之一 |
addrect | 當order為hclust時引镊,可以為添加相關系數(shù)圖添加矩形框朦蕴,默認不添加框篮条,如果想添加框時,只需為該參數(shù)指定一個整數(shù)即可 |
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時额港,圖例在右表(r)饺窿,當type=lower時,圖例在底部移斩,不需要圖例時肚医,只需指定該參數(shù)為n |
addshade | 只有當method=shade時,該參數(shù)才有用向瓷,參數(shù)值可以是negtive/positive和all肠套,分表表示對負相關系數(shù)、正相關系數(shù)和所有相關系數(shù)添加陰影风罩。注意:正相關系數(shù)的陰影是45度糠排,負相關系數(shù)的陰影是135度 |
shade.lwd | 指定陰影的線寬 |
shade.col | 指定陰影線的顏色 |
p.mat | p值的矩陣舵稠,如果為NULL超升,則參數(shù)sig.level,insig哺徊,pch室琢,pch.col,pch.cex均無效 |
sig.level | 顯著水平落追,如果p-mat中的p值大于sig.level盈滴,那么相應的相關系數(shù)被認為是無關緊要的。如果insig是“l(fā)abel_sig”轿钠,這種情況下巢钓,用“ * "(例如“ * ",“ ** "疗垛,“ *** " )來強調顯著性 |
plotCI | 字符症汹,繪制置信區(qū)間的方法。如果為“n”贷腕,則不繪制置信區(qū)間背镇。如果是“rect”咬展,則繪制矩形,其上側分別表示上限瞒斩,下側表示下限破婆,同時相關系數(shù)也加在矩形上。如果是“circle'胸囱,首先繪制一個具有較大絕對界限的圓祷舀,然后繪制較小的圓 |
lowCI.mat | 置信區(qū)間下限的矩陣 |
uppCI.mat | 置信區(qū)間上限的矩陣 |
3. 演示
#加載corrplot包
library(corrplot)
library(patchwork)
#示例使用R內(nèi)置數(shù)據(jù)mtcars
head(mtcars)
# mpg cyl disp hp drat wt qsec vs am gear carb
# Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
# Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
# Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
# Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
# Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
# Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
M <- cor(mtcars) #先求相關系數(shù)
head(M)
# mpg cyl disp hp drat wt qsec vs am gear carb
# mpg 1.0000000 -0.8521620 -0.8475514 -0.7761684 0.6811719 -0.8676594 0.41868403 0.6640389 0.5998324 0.4802848 -0.5509251
# cyl -0.8521620 1.0000000 0.9020329 0.8324475 -0.6999381 0.7824958 -0.59124207 -0.8108118 -0.5226070 -0.4926866 0.5269883
# disp -0.8475514 0.9020329 1.0000000 0.7909486 -0.7102139 0.8879799 -0.43369788 -0.7104159 -0.5912270 -0.5555692 0.3949769
# hp -0.7761684 0.8324475 0.7909486 1.0000000 -0.4487591 0.6587479 -0.70822339 -0.7230967 -0.2432043 -0.1257043 0.7498125
# drat 0.6811719 -0.6999381 -0.7102139 -0.4487591 1.0000000 -0.7124406 0.09120476 0.4402785 0.7127111 0.6996101 -0.0907898
# wt -0.8676594 0.7824958 0.8879799 0.6587479 -0.7124406 1.0000000 -0.17471588 -0.5549157 -0.6924953 -0.5832870 0.4276059
- 3.1 首先使用默認參數(shù)繪圖
corrplot(M)
- 3.2 設置
可視化方法(method)
和展示類型(type)
par(mfrow=c(1,2))
corrplot(M,method='ellipse') #更改可視化方法method(7種可選)
corrplot(M, type = 'upper') #更改展示類型type(默認full,可選上三角upper烹笔、下三角lower)
- 3.3 設置
顏色(color)
par(mfrow=c(1,2))
#直接設置顏色
wb <- c('blue', 'black','red')
corrplot(M, col = wb)
#顏色設置蔑鹦,還可以使用colorRampPalette顏色梯度函數(shù)(色彩更豐富)
col3 <- colorRampPalette(c("blue", "black", "red"))
corrplot(M, col = col3(20)) #20表示 20個色階
- 3.4 設置背景色(bg)
# bg設置背景色,cl.pos = "n"不展示顏色圖例
corrplot(M, bg = "grey", order = "AOE", cl.pos = "n")
- 3.5 用hclust方法聚類
par(mfrow=c(1,2))
## addrect設置分組變量箕宙,添加矩形
## hclust.method = "ward.D2"設定聚類方法
corrplot(M, order = "hclust", addrect = 2,rect.col = "black")
corrplot(M, order = "hclust", hclust.method = "ward.D2", addrect = 4,rect.col = "blue")
- 3.6 設定不同展示順序(order)
addCoef.col添加相關系數(shù)并設定顏色
corrplot(M, order = "AOE", addCoef.col = "grey")
- 3.7 tl.pos = "n"不展示文本標簽嚎朽,tl.srt參數(shù)設定文本標簽擺放角度
diag = FALSE不展示對角線的相關系數(shù)
par(mfrow=c(1,2))
corrplot(M, order = "AOE", type = "lower", method = "ellipse",
diag = FALSE, tl.pos = "n", cl.pos = "n")
corrplot(M, order = "AOE", tl.srt = 45)
- 3.8 修改圖例范圍 abs(M):abs取絕對值;cl.lim設定圖例顏色范圍柬帕,cl.pos設定顏色圖例的位置哟忍。
par(mfrow=c(1,2))
corrplot(abs(M), order = "AOE", cl.lim = c(0,1))
corrplot(M, order = "AOE", cl.pos = "b")
- 3.9 顯著性標記
par(mfrow=c(2,3))
## 設置沒通過統(tǒng)計的相關性結果打X,conf.level置信水平
res1 <- cor.mtest(mtcars, conf.level = .95)
corrplot(M, p.mat = res1$p, sig.level = .01)
## 設置不顯著的空白
corrplot(M, p.mat = res1$p, insig = "blank")
## 設置不顯著的顯示p值
corrplot(M, p.mat = res1$p, insig = "p-value")
## 顯示所有p值
corrplot(M, p.mat = res1$p, insig = "p-value", sig.level = -1)
## 用 * 數(shù)量代表顯示性
corrplot(M, p.mat = res1$p, insig = "label_sig",
sig.level = c(.001, .01, .05), pch.cex = .9, pch.col = "black")
- 3.10 畫置信區(qū)間
plotCI=circle,可選擇:square陷寝、rect锅很,n為不繪制
par(mfrow=c(1,3))
corrplot(M, low = res1$uppCI, upp = res1$uppCI,
plotCI = "circle", addg = "grey20", cl.pos = "n")
#置信區(qū)間與相關性同時表示,不顯著標記x
corrplot(M, p.mat = res1$p, low = res1$lowCI, upp = res1$uppCI,
plotCI = "circle", addg = "grey20", cl.pos = "n")
#不顯著標記X凤跑,顏色更換
corrplot(M, p.mat = res1$p, low = res1$lowCI, upp = res1$uppCI,
col = c("white", "black"), bg = "gold2", order = "AOE",
plotCI = "circle", cl.pos = "n", pch.col = "red")
- 3.11 在已有的圖形上添加其他圖形add = TRUE
如果用corrplot.mixed()函數(shù)更高效
par(mfrow=c(1,2))
corrplot(M)
corrplot(M, add = TRUE, type = "lower", method = "ellipse", order = "AOE",
diag = FALSE, tl.pos = "n", cl.pos = "n")
#add爆安,更復雜舉例
A<-corrplot(M, p.mat = res1$p, low = res1$lowCI, upp = res1$uppCI,
plotCI = "circle", addg = "grey20", cl.pos = "n")
corrplot(A, add = TRUE, type = "upper", method = "number",
order = "AOE", diag = FALSE, tl.pos = "n", cl.pos = "n")
參考:
https://cran.r-project.org/web/packages/corrplot/vignettes/corrplot-intro.html
https://mp.weixin.qq.com/s/zq5jiOTeAM1dxfqnthWBBg