R語言繪圖包06--基因表達相關(guān)性繪圖corrplot


R語言繪圖包系列:


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 邏輯值,是否為相關(guān)系數(shù)繪圖,默認為TRUE,同樣也可以實現(xiàn)非相關(guān)系數(shù)的可視化,只需使該參數(shù)設為FALSE
diag 是否顯示對角線值。因為對角線全為1,顯示只是美觀,實際意義不大,默認為TRUE
outline 是否繪制圓形、方形或橢圓形的輪廓,默認為FALSE
mar 具體設置圖形的四邊間距
addgrid.col 當選擇的方法為顏色或陰影時,默認的網(wǎng)格線顏色為白色,否則為灰色
addCoef.col 為相關(guān)系數(shù)添加顏色,默認不添加相關(guān)系數(shù),只有方法為number時,該參數(shù)才起作用
addCoefasPercent 為節(jié)省繪圖空間,是否將相關(guān)系數(shù)轉(zhuǎn)換為百分比格式,默認為FALSE
order 指定相關(guān)系數(shù)排序的方法,可以是原始順序(original)、特征向量角序(AOE)、第一主成分順序(FPC)、層次聚類順序(hclust)和字母順序,一般”AOE”排序結(jié)果都比”FPC”要好。
hclust.method 當order為hclust時,該參數(shù)可以是層次聚類中ward法、最大距離法等7種之一
addrect 當order為hclust時,可以為添加相關(guān)系數(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,分表表示對負相關(guān)系數(shù)、正相關(guān)系數(shù)和所有相關(guān)系數(shù)添加陰影。注意:正相關(guān)系數(shù)的陰影是45度,負相關(guān)系數(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,那么相應的相關(guān)系數(shù)被認為是無關(guān)緊要的。如果insig是“l(fā)abel_sig”,這種情況下,用“ * "(例如“ * ",“ ** ",“ *** " )來強調(diào)顯著性
plotCI 字符,繪制置信區(qū)間的方法。如果為“n”,則不繪制置信區(qū)間。如果是“rect”,則繪制矩形,其上側(cè)分別表示上限,下側(cè)表示下限,同時相關(guān)系數(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) #先求相關(guān)系數(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添加相關(guān)系數(shù)并設定顏色
corrplot(M, order = "AOE", addCoef.col = "grey")
  • 3.7 tl.pos = "n"不展示文本標簽,tl.srt參數(shù)設定文本標簽擺放角度
    diag = FALSE不展示對角線的相關(guān)系數(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)計的相關(guān)性結(jié)果打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ū)間與相關(guān)性同時表示,不顯著標記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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,362評論 6 537
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,013評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,346評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,421評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,146評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,534評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,585評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,767評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,318評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,074評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,258評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,828評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,486評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,916評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,156評論 1 290
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,993評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,234評論 2 375

推薦閱讀更多精彩內(nèi)容