R語言繪圖包06--基因表達相關性繪圖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 邏輯值,是否為相關系數(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

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
禁止轉載,如需轉載請通過簡信或評論聯(lián)系作者仔引。
  • 序言:七十年代末扔仓,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子咖耘,更是在濱河造成了極大的恐慌翘簇,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件儿倒,死亡現(xiàn)場離奇詭異版保,居然都是意外死亡,警方通過查閱死者的電腦和手機夫否,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門彻犁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人凰慈,你說我怎么就攤上這事汞幢。” “怎么了溉瓶?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵急鳄,是天一觀的道長谤民。 經(jīng)常有香客問我,道長疾宏,這世上最難降的妖魔是什么张足? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮坎藐,結果婚禮上为牍,老公的妹妹穿的比我還像新娘。我一直安慰自己岩馍,他們只是感情好碉咆,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蛀恩,像睡著了一般疫铜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上双谆,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天壳咕,我揣著相機與錄音,去河邊找鬼顽馋。 笑死谓厘,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的寸谜。 我是一名探鬼主播竟稳,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼熊痴!你這毒婦竟也來了他爸?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤愁拭,失蹤者是張志新(化名)和其女友劉穎讲逛,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體岭埠,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年蔚鸥,在試婚紗的時候發(fā)現(xiàn)自己被綠了惜论。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡止喷,死狀恐怖馆类,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情弹谁,我是刑警寧澤乾巧,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布句喜,位于F島的核電站,受9級特大地震影響沟于,放射性物質發(fā)生泄漏咳胃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一旷太、第九天 我趴在偏房一處隱蔽的房頂上張望展懈。 院中可真熱鬧,春花似錦供璧、人聲如沸存崖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽来惧。三九已至,卻和暖如春演顾,著一層夾襖步出監(jiān)牢的瞬間违寞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工偶房, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留趁曼,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓棕洋,卻偏偏與公主長得像挡闰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子掰盘,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

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