Rにはヒートマップを描写するパッケージが多くあります。からだにいいものでも紹介していますが、本パッケージは細かい体裁が調整可能です。大変オプションが多いので、実行コマンド内では紹介しきれませんでした。表で紹介しますので参考にしてください。
パッケージバージョンは0.1.0。windows11のR version 4.1.2で確認しています。
パッケージのインストール
下記コマンドを実行してください。
#パッケージのインストール install.packages("superheat")
実行コマンドの紹介
詳細はコマンド内を確認ください。
#パッケージの読み込み library("superheat") ###データ例の作成##### n <- 10 TestData <- data.frame(Group = sample(paste0("ID", 1:3), n, replace = TRUE), Data1 = rnorm(n), Data2 = rnorm(n) + rnorm(n) + rnorm(n), Data3 = rnorm(n) * rnorm(n), Data4 = rnorm(n) * rnorm(n)) ######## superheat(X = TestData[, -c(1, 5)], #X.text = TextData, yt = base::apply(TestData[, -c(1, 5)], 2, mean), yr = TestData[, 2], #membership.rows = TestData$Group, n.clusters.rows = 2, #n.clusters.cols = 2, clustering.method = "kmeans", left.label = "variable", bottom.label = "variable", #heat.col.scheme = "green", heat.pal = c(low = "#4b61ba", high = "#a87963"), X.text.size = 3, X.text.col = "black", yt.plot.type = "bar", yr.plot.type = "boxplot", legend = TRUE, legend.height = 0.1, legend.width = 1.2, legend.text.size = 12, smoothing.method = c("loess", "lm"), yt.num.ticks = 5, yr.num.ticks = 3, yt.plot.size = 0.3, yr.plot.size = 0.3, yt.axis.name = "yt LABEL", yr.axis.name = "yr LABEL", yt.axis.size = 8, yr.axis.size = 10, yt.axis.name.size = 8, yr.axis.name.size = 8, yt.axis.name.angle = 0, yr.axis.name.angle = NULL, yt.obs.col = c("#505457", "#4b61ba", "#a87963"), yr.cluster.col = c("#505457", "#a87963"), bottom.label.text.size = 4, left.label.text.size = 3, bottom.label.text.angle = NULL, left.label.text.angle = 45, bottom.label.size = 0.1, left.label.size = 0.1, left.label.col = c("#505457", "#a87963"), bottom.label.col = c("#505457", "#4b61ba", "#a87963"), bottom.label.text.col = NULL, left.label.text.col = "red", row.title = "ID", row.title.size = 5, padding = 1, title = "TEST", title.size = 5)
パッケージオプション
他のオプションはパッケージヘルプを参照ください。
オプション | 内容 | 初期値 |
---|---|---|
X | プロットデータ | - |
X.text | matrix classで指定,各セル表示テキスト | NULL |
yt | 上にデータをプロット,データ数は列数と同じ | NULL |
yr | 右にデータをプロット,データ数は行数と同じ | NULL |
membership.rows | 指定した列に基づきデータを分類,X.textと同時に使用不可? | NULL |
n.clusters.rows | clustering.methodの手法で指定した数に行を分割,X.textと同時に使用不可? | NULL |
n.clusters.cols | clustering.methodの手法で指定した数に列を分割,X.textと同時に使用不可? | NULL |
clustering.method | n.clusters.rows,n.clusters.cols適応時に指定した方法を適用,kmeansおよびhierarchicalが適応可能 | kmeans |
left.label | ヒートマップ左ラベル,noneで非表示 | variable |
bottom.label | ヒートマップ下部ラベル,noneで非表示 | variable |
heat.col.scheme | セル色,"red", "purple", "blue", "grey", "green"が指定可能 | red |
heat.pal | セル色,c(low = "色名", high = "色名"で指定,heat.col.scheme同時に使用不可 | NULL |
X.text.size | セル内テキストラベルサイズ | 5 |
X.text.col | セル内テキスト色 | black |
yt.plot.type | 上部プロット内容,"scatter", "bar", "boxplot", "scattersmooth", "smooth", "scatterline", "line"が指定可能 | scatter |
yr.plot.type | 右部プロット内容,"scatter", "bar", "boxplot", "scattersmooth", "smooth", "scatterline", "line"が指定可能 | |
legend | ヒートマップのスケール表示,TRUEまたはFALSE | 1 |
smoothing.method | プロット内容に "scattersmooth", "smooth"指定時の手法,"loess", "lm" | loess |
yt.num.ticks | 上部プロットのy軸区切り数 | 3 |
yr.num.ticks | 右部プロットのy軸区切り数 | 3 |
yt.plot.size | 上部プロットの大きさ | 0.3 |
yr.plot.size | 右部プロットの大きさ | 0.3 |
yt.axis.name | 上部プロット軸ラベル | NULL |
yr.axis.name | 右部プロット軸ラベル | NULL |
yt.axis.size | 上部プロット軸テキストサイズ | 10 |
yr.axis.size | 右部プロット軸テキストサイズ | 10 |
yt.axis.name.size | 上部プロット軸ラベルサイズ | 10 |
yr.axis.name.size | 右部プロット軸ラベルサイズ | 10 |
yt.axis.name.angle | 上部プロット軸ラベルの回転 | NULL |
yr.axis.name.angle | 右部プロット軸ラベルの回転 | NULL |
yt.obs.col | 上部プロットシンボルの色を設定,要素分の指定が必要 obs部分はcluster,bar,point,lineの指定が可能 | NULL |
yr.obs.col | 右部プロットシンボルの色を設定,要素分の指定が必要 obs部分はcluster,bar,point,lineの指定が可能 | NULL |
bottom.label.text.size | ヒートマップ下部ラベルサイズ | 5 |
left.label.text.size | ヒートマップ左部ラベルサイズ | 5 |
bottom.label.text.angle | ヒートマップ下部ラベルの回転 | NULL |
left.label.text.angle | ヒートマップ左部ラベルの回転 | NULL |
bottom.label.size | ヒートマップ下部ラベルエリア | 0.2 |
left.label.size | ヒートマップ左部ラベルエリア | 0.2 |
bottom.label.text.col | ヒートマップ下部ラベル色 | NULL |
left.label.text.col | ヒートマップ左部ラベル色 | NULL |
column.title | 列名を指定 | NULL |
row.title | 行名を指定 | NULL |
title | プロットタイトル | NULL |
出力例
少しでも、あなたの解析が楽になりますように!!