一個(gè)輕量級(jí)繪制熱圖的R包-HeatmapR

目前R中繪制熱圖的方式有很多吁恍,常用的如pheatmap伴奥、ComplexHeatmap包等感局,這里再給大家介紹一個(gè)輕量級(jí)的R包-HeatmapR包崖瞭,即無需過多的前期數(shù)據(jù)處理唧领,可同時(shí)可視化含有離散型和連續(xù)性的矩陣西雀。

Github地址:https://github.com/DillonHammill/HeatmapR

準(zhǔn)備數(shù)據(jù)

## 按照R包
devtools::install_github("DillonHammill/HeatmapR")
library(HeatmapR)
## 準(zhǔn)備數(shù)據(jù)
data <- mtcars
data <- data[sample(nrow(data),20),]
head(data)
> str(data)
'data.frame':   20 obs. of  11 variables:
 $ mpg : num  21.4 17.8 32.4 30.4 18.1 27.3 22.8 21 19.2 16.4 ...
 $ cyl : num  4 6 4 4 6 4 4 6 8 8 ...
 $ disp: num  121 167.6 78.7 75.7 225 ...
 $ hp  : num  109 123 66 52 105 66 93 110 175 180 ...
 $ drat: num  4.11 3.92 4.08 4.93 2.76 4.08 3.85 3.9 3.08 3.07 ...
 $ wt  : num  2.78 3.44 2.2 1.61 3.46 ...
 $ qsec: num  18.6 18.9 19.5 18.5 20.2 ...
 $ vs  : num  1 1 1 1 1 1 1 0 0 0 ...
 $ am  : num  1 0 1 1 0 1 1 1 0 0 ...
 $ gear: num  4 4 4 4 3 4 4 4 3 3 ...
 $ carb: num  2 4 1 2 1 1 1 4 2 3 ...

目前再悼,數(shù)據(jù)集里各列都是數(shù)值型的數(shù)據(jù)跟束,先簡單出圖看下效果灭贷。

基礎(chǔ)繪圖

library(HeatmapR)
heat_map(
  data,
  scale = "column",
  scale_method = "range", # "range", "mean" or "zscore" 三種標(biāo)準(zhǔn)化方式
  tree_x = TRUE, ## 顯示X軸聚類
  tree_y = TRUE, ##顯示Y軸聚類
  tree_cut_x = 4, ## 行分割數(shù)
  tree_cut_y = 12,  ##列分割數(shù)
  cell_text = TRUE, ## 顯示數(shù)值
  cell_text_col = 'black',
  cell_size = TRUE, ## 控制大小
  cell_shape = "diamond", #設(shè)置性狀
  title = "mtcars"
)
image-20221124110616489

添加缺失值并改變數(shù)據(jù)類型

此包的便捷性在于可將同時(shí)含有連續(xù)性和離散型矩陣可視化熱圖揽祥,這里隨機(jī)添加幾個(gè)缺失值,并改變cyl列的數(shù)據(jù)為因子類型盔然,然后再繪制熱圖看下效果桅打。

## 添加NA值并改變某列為因子型
data[c(2, 19, 14, 7), 3] <- NA
data[c(4, 9, 17, 20), 4] <- NA
data$cyl <- factor(data$cyl)
str(data)
> str(data)
'data.frame':   20 obs. of  11 variables:
 $ mpg : num  21.4 17.8 32.4 30.4 18.1 27.3 22.8 21 19.2 16.4 ...
 $ cyl : Factor w/ 3 levels "4","6","8": 1 NA 1 1 2 1 NA 2 3 3 ...
 $ disp: num  121 167.6 78.7 NA 225 ...
 $ hp  : num  109 123 66 52 105 66 93 110 175 180 ...
 $ drat: num  4.11 3.92 4.08 4.93 2.76 4.08 3.85 3.9 3.08 3.07 ...
 $ wt  : num  2.78 3.44 2.2 1.61 3.46 ...
 $ qsec: num  18.6 18.9 19.5 18.5 20.2 ...
 $ vs  : num  1 1 1 1 1 1 1 0 0 0 ...
 $ am  : num  1 0 1 1 0 1 1 1 0 0 ...
 $ gear: num  4 4 4 4 3 4 4 4 3 3 ...
 $ carb: num  2 4 1 2 1 1 1 4 2 3 ...
 
 ## 繪制熱圖
 heat_map(
  data,
  scale = "column",
  scale_method = "range", #  "range", "mean" or "zscore" 三種方式
  tree_x = TRUE, ## 顯示X軸聚類
  tree_y = TRUE, ##顯示Y軸聚類
  tree_cut_x = 4,
  tree_cut_y = 12, 
  cell_text = TRUE,
  cell_text_col = 'black',
  #cell_size = TRUE, ## 控制大小
  cell_shape = "diamond", #設(shè)置性狀
  title = "mtcars",
  cell_col_empty = "red",
  cell_col_scale = c(  ##連續(xù)性數(shù)據(jù)配色
    '#2ab49b',
    'white',
    '#ea7f58'
  ),
  cell_col_palette = c(  ##離散型數(shù)據(jù)配色
    "#197fcd",
    "#00c347",
    "#fb3b65"
  ),
  cell_col_alpha = 1
)
image-20221124112955772

其它功能

添加柱狀圖

heat_map(
  data,
  cell_col_scale = c(  ##連續(xù)性數(shù)據(jù)配色
    '#2ab49b',
    'white',
    '#ea7f58'
  ),
  scale = "column",
  scale_method = "range",
  bar_values_x = 1:ncol(mtcars),
  bar_size_x = 0.5,
  bar_fill_x = rainbow(ncol(mtcars)),
  bar_line_col_x = "black",
  bar_values_y = 1:nrow(mtcars),
  bar_size_y = 0.8,
  bar_fill_y = rainbow(ncol(mtcars)),
  bar_line_col_y = "black",
  title = "heatmap with bar plots"
)
image-20221124112608903

該包參數(shù)非常多是嗜,也基本涵蓋了熱圖常用的調(diào)參細(xì)節(jié),如添加行與列分組注釋挺尾,聚類方法設(shè)置鹅搪,圖例與導(dǎo)出等等,感興趣的可以參考HeatmapR ? HeatmapR (dillonhammill.github.io)指南進(jìn)行學(xué)習(xí)遭铺,這里不再一一介紹了丽柿。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市魂挂,隨后出現(xiàn)的幾起案子甫题,更是在濱河造成了極大的恐慌,老刑警劉巖涂召,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坠非,死亡現(xiàn)場離奇詭異,居然都是意外死亡果正,警方通過查閱死者的電腦和手機(jī)炎码,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秋泳,“玉大人潦闲,你說我怎么就攤上這事∑戎澹” “怎么了歉闰?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長卓起。 經(jīng)常有香客問我和敬,道長,這世上最難降的妖魔是什么既绩? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任概龄,我火速辦了婚禮,結(jié)果婚禮上饲握,老公的妹妹穿的比我還像新娘私杜。我一直安慰自己,他們只是感情好救欧,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布衰粹。 她就那樣靜靜地躺著,像睡著了一般笆怠。 火紅的嫁衣襯著肌膚如雪铝耻。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音瓢捉,去河邊找鬼频丘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛泡态,可吹牛的內(nèi)容都是我干的搂漠。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼某弦,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼桐汤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起靶壮,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤怔毛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后腾降,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拣度,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年蜂莉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蜡娶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片混卵。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡映穗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出幕随,到底是詐尸還是另有隱情蚁滋,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布赘淮,位于F島的核電站辕录,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏梢卸。R本人自食惡果不足惜走诞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蛤高。 院中可真熱鬧蚣旱,春花似錦、人聲如沸戴陡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恤批。三九已至异吻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喜庞,已是汗流浹背诀浪。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工棋返, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人雷猪。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓懊昨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親春宣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子酵颁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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