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 |
出力例
少しでも、あなたの解析が楽になりますように!!