R數(shù)據(jù)可視化5:熱圖Heatmap

最近休息了幾天。沒有來得及更新瘦穆。今天我們來講一講熱圖怎么繪制

什么是熱圖(Heatmap)

熱圖是一個以顏色變化來顯示數(shù)據(jù)的矩陣贱鼻。Toussaint Loua在1873年就曾使用過熱圖來繪制對巴黎各區(qū)的社會學(xué)統(tǒng)計。

Toussaint Loua: 社會學(xué)統(tǒng)計

生物學(xué)中熱圖經(jīng)常用于展示多個基因在不同樣本中的表達(dá)水平县踢。然后可以通過聚類等方式查看不同組(如疾病組和對照組)特有的pattern瓷蛙。

基因表達(dá)

如上圖每一列代表一個樣本(左側(cè)的樣本是Basal悼瓮,右側(cè)的樣本是Luminal),每一行代表一個基因艰猬,顏色代表了表達(dá)量(這張圖沒有顯示圖例横堡,不知道是偏綠還是偏紅代表高表達(dá)量)」谔遥可以看到這些挑選出的基因在兩組的表達(dá)有較大的差異命贴,EN1、FOXC1這幾個基因在Basal組總體呈現(xiàn)紅色,在Luminal呈現(xiàn)綠色胸蛛。而后面的幾個基因在Luminal總體呈現(xiàn)紅色污茵,在Basal總體呈現(xiàn)綠色。而外面的樹狀圖形是對基因和樣本的聚類葬项,通常聚類的結(jié)果把基因的表達(dá)量相似的聚在一起泞当,把基因表達(dá)的pattern相似的樣本聚在一起。所以在該圖中可以看到Basal的樣本都聚在了一起玷室,Luminal 的樣本也都聚在了一起零蓉。通常如果兩組的差異較明顯,組內(nèi)的pattern較為相似穷缤,就能有這樣的聚類結(jié)果——一個組的樣本聚類在一起。相反如果是差異較小的兩組樣本箩兽,就很可能混在一起津肛。

熱圖還可以用于展示其他物質(zhì)的豐度比如微生物的相對豐度、代謝組不同物質(zhì)的含量等等汗贫。當(dāng)然身坐,另一個熱圖的重要用處就是展現(xiàn)不同指標(biāo)、不同樣本等之間的相關(guān)性落包。

相關(guān)性熱圖

此時顏色代表的就是相關(guān)系數(shù)的大小部蛇。所以可以看到自己和自己的相關(guān)系數(shù)是1,也就是最深的藍(lán)色咐蝇。約接近白色說明相關(guān)性越弱涯鲁,偏藍(lán)(正相關(guān))或者偏紅(負(fù)相關(guān))則代表相關(guān)性強(qiáng)。當(dāng)然在相關(guān)性的計算中除了相關(guān)系數(shù)以外有序,我們還會看pvalue是否顯著抹腿。如果我們想要把pvalue表示在圖中,可以在格子上添加*號或者具體的數(shù)值旭寿。同時因?yàn)檫@里可以看到其實(shí)不同的兩個指標(biāo)之間的關(guān)系是被重復(fù)展現(xiàn)了2次警绩,比如symboling與normalized-losses(最上面一行的第二個格子,和從上往下的第二行的第一個格子)盅称,因此有時候我們只展現(xiàn)一半即對角線以上或以下的一半圖形肩祥。

相關(guān)性的熱圖: 格子中的數(shù)值代表相關(guān)性系數(shù)

怎么做熱圖Heatmap

1)需要什么格式的數(shù)據(jù)
有很多的軟件都可以做heatmap。我們要介紹的當(dāng)然是R缩膝,R默認(rèn)中提供了heatmap函數(shù)混狠。當(dāng)然,R中也有很多具有heatmap功能的包逞盆,比如ggplot2,gplots檀蹋。
今天我們介紹含有heatmap.2功能的gplots包。
heatmap.2函數(shù)和我們之前要求的數(shù)據(jù)類型不太一樣,這個函數(shù)輸入數(shù)據(jù)要求是個矩陣(matrix)俯逾。

data(mtcars)
x<-mtcars
y<-as.matrix(mtcars)

在R Studio中我們可以清楚的看到x和y的區(qū)別(雖然如果點(diǎn)開你也許會覺得x與y難道不是一模一樣嗎)贸桶,x的type是dataframe的格式,而y是matrix也就是矩陣格式桌肴。這兩種數(shù)據(jù)類型有什么差別呢皇筛?matrix中的值只能是一個格式,比如都是字符型坠七。而dataframe可以同時支持不同的類型比如數(shù)值型和字符型水醋。

dataframe與matrix

2)如何做圖
本節(jié)用一個不是那么生物的數(shù)據(jù)集來展示一下如何做熱圖。

data("attitude")
Ca <- cor(attitude)
Ca數(shù)據(jù)

如果直接使用默認(rèn)的heatmap.2功能我們可以看到:


默認(rèn)

和平時看到的heatmap有些不一樣彪置,中間的這些藍(lán)色的線我們稱作“trace”:虛線表示這一列平均值拄踪,實(shí)線表示與平均值的偏離程度。默認(rèn)是按照列計算平均等拳魁,也可以改為行惶桐。
但是我們這里的數(shù)據(jù)是做相關(guān)性,所以這些線的意義就不是那么大潘懊。
圖例中也類似姚糊,展示了不同顏色對應(yīng)的值大小,而藍(lán)色的實(shí)線是根據(jù)數(shù)據(jù)分布做的密度曲線授舟,虛線是平均值救恨。
黑色的線之前我們已經(jīng)提到過是對數(shù)據(jù)進(jìn)行了聚類。

然后我們對圖進(jìn)行一些修改释树,紅色太扎眼換個顏色肠槽,把一些不需要的功能去掉。比如聚類比如這些藍(lán)色的線躏哩。


data("attitude")
Ca <- cor(attitude)#cor的結(jié)果就是矩陣

library(gplots)
library(RColorBrewer)
coul <- colorRampPalette(brewer.pal(8, "PiYG"))(25)#換個好看的顏色
hM <- format(round(Ca, 2))#對數(shù)據(jù)保留2位小數(shù)

heatmap.2(Ca,
trace="none",#不顯示trace
col=coul,#修改熱圖顏色
density.info = "none",#圖例取消density
key.xlab ='Correlation',
key.title = "",
cexRow = 1,cexCol = 1,#修改橫縱坐標(biāo)字體
Rowv = F,Colv = F, #去除聚類
margins = c(6, 6),
cellnote = hM,notecol='black'#添加相關(guān)系數(shù)的值及修改字體顏色
            )


當(dāng)然也可以按照相同順序把相關(guān)性系數(shù)換成pvalue署浩。顏色也可以根據(jù)情況進(jìn)行修改。其他的也可以進(jìn)一步調(diào)整扫尺。
總之筋栋,要記住不論做什么圖最最重要的是如何通過這張圖說明突出你想要傳達(dá)的內(nèi)容,你想要告訴讀者什么結(jié)論正驻,那么就是你這張圖所需要展示的弊攘,千萬不要一味追求圖形的好看或者復(fù)雜而忘記了你做圖的目的,不論任何形式的圖都只是數(shù)據(jù)的可視化姑曙,而可視化是為了增強(qiáng)數(shù)據(jù)的可讀性襟交。
借用老板常說的一句話,做生信的伤靠,要玩方法不要被方法玩捣域。

另外,最近發(fā)現(xiàn)一篇基于pheatmap的熱圖文章,寫的很詳盡焕梅,推薦給大家:
使用pheatmap包繪制熱圖

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末迹鹅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子贞言,更是在濱河造成了極大的恐慌斜棚,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件该窗,死亡現(xiàn)場離奇詭異弟蚀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)酗失,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進(jìn)店門义钉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人级零,你說我怎么就攤上這事断医。” “怎么了奏纪?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長斩启。 經(jīng)常有香客問我序调,道長,這世上最難降的妖魔是什么兔簇? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任发绢,我火速辦了婚禮,結(jié)果婚禮上垄琐,老公的妹妹穿的比我還像新娘边酒。我一直安慰自己,他們只是感情好狸窘,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布墩朦。 她就那樣靜靜地躺著,像睡著了一般翻擒。 火紅的嫁衣襯著肌膚如雪氓涣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天陋气,我揣著相機(jī)與錄音劳吠,去河邊找鬼。 笑死巩趁,一個胖子當(dāng)著我的面吹牛痒玩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼蠢古,長吁一口氣:“原來是場噩夢啊……” “哼奴曙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起便瑟,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤缆毁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后到涂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體脊框,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年践啄,在試婚紗的時候發(fā)現(xiàn)自己被綠了浇雹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡屿讽,死狀恐怖昭灵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情伐谈,我是刑警寧澤烂完,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站诵棵,受9級特大地震影響抠蚣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜履澳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一嘶窄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧距贷,春花似錦柄冲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至什湘,卻和暖如春长赞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背闽撤。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工得哆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人哟旗。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓贩据,卻偏偏與公主長得像栋操,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子饱亮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評論 2 345

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