Rとウェブ解析:簡単なheatmapの作成! heatmap3パッケージのご紹介


数や物の大小を視覚的に色で表す方法にヒートマップ(heatmap)という方法があります。heatmap3パッケージで手軽に表現できますのでご紹介します。

なお、ggplot2の拡張パッケージでもheatmapを描写することができます。記事はこちらから。

インタラクティブなヒートマップ作成はこちらから
Rで解析:インタラクティブなヒートマップ!D3.jsを利用した「d3heatmap」パッケージの紹介
https://www.karada-good.net/analyticsr/r-122/

インタラクティブな参考例です。


「heatmap3」パッケージの導入

下記コードを実行することで導入することができます。

 library("heatmap3")

実行例

例を3つ紹介します。なお、Rstudioを使用している場合、plotエリアが小さいと「figure margins too large」と表示されヒートマップが表示されない場合があります。その場合はplotエリアを十分に広げ再度コマンドを実行してください。


library("heatmap3")

#例1データをカラーバーで表示
temp <- c(-3, 2, 1, 2, 1.2, -1.2)
col <- colByValue(temp, col = colorRampPalette(c('chartreuse4', 'white', 'firebrick'))(1024), range = c(-2,2))

#例2ヒートマップ上部にグループカラーを表示
set.seed(123456789) #乱数の種を設定
###データの準備#####
rnormData <- matrix(rnorm(1000), 40, 25)
rnormData[1:15, seq(6, 25, 2)] = rnormData[1:15, seq(6, 25, 2)] + 2
rnormData[16:40, seq(7, 25, 2)] = rnormData[16:40, seq(7, 25, 2)] + 4
########

###作成したデータに行と列名を設定#####
#行名
colnames(rnormData) <- c(paste("Control", 1:5, sep = ""), paste(c("TrtA", "TrtB"),
                                                              rep(1:10,each = 2), sep = ""))
#列名
rownames(rnormData) <- paste("Probe", 1:40, sep = "")
########

#ヒートマップ上部に表示するグループカラーを設定。ここで色を変更できます。
ColSideColors <- c(rep("steelblue2", 5), rep(c("brown1", "mediumpurple2"), 10))

#heatmapの描写
heatmap3(rnormData, ColSideColors = ColSideColors, showRowDendro = FALSE)

#例3 showAnn関数を使用して、データの詳細をヒートマップ上部に表示
###データの準備#####
annData <- data.frame(mtcars[,c("mpg","am","wt","gear")])
annData[,2] <- as.factor(annData[,2])
annData[,4] <- as.factor(annData[,4])
########

#heatmapの描写
heatmap3(t(mtcars), ColSideAnn = annData, ColSideFun = function(x)
  showAnn(x) ,ColSideWidth = 1.2, balanceColor = TRUE)

出力結果

例1
heatmap1

例2
heatmap2

例3
heatmap3


少しでも、ウェブや実験の解析が楽になりますように!!
もし、不明点がありましたらこちらからお問い合わせください。

スポンサードリンク

おすすめコンテンツ


スポンサードリンク