数や物の大小を視覚的に色で表す方法にヒートマップ(heatmap)という方法があります。heatmap3パッケージで手軽に表現できますのでご紹介します。
なお、ggplot2の拡張パッケージでもheatmapを描写することができます。記事はこちらから。
パッケージバージョンは1.1.9。windows11のR version 4.1.2で確認しています。
パッケージのインストール
下記コマンドを実行してください。
#パッケージのインストール install.packages("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
例2
例3
少しでも、あなたの解析が楽になりますように!!