heatmap.2 のヘルプ マニュアルを数回読みましたが、さまざまなオンライン チュートリアルでも、カラー キーを別の位置に移動する方法については読んでいませんでした。今、私はそれが可能かどうか疑問に思っていますか?
gplots パッケージの heatmap.2 関数を使用している場合、カラー キーはデフォルトで左上隅にあります。
heatmap.2
プロット内の各要素の位置はlmat
、lhei
およびlwid
パラメータを使用して制御できます。これらは次のようheatmap.2
にlayout
コマンドに渡されます。
layout(mat = lmat, widths = lwid, heights = lhei)
lmat
画面を分割する方法を説明するマトリックスです。デフォルトでは、heatmap.2 は画面を 4 つの要素のグリッドに分割するためlmat
、2x2 マトリックスになります。行列の各要素の数字は、次の 4 つのプロットをプロットする順序を示します。Heatmap.2 は、その要素を次の順序でプロットします。
したがって、デフォルトlmat
は次のとおりです。
> rbind(4:3,2:1)
[,1] [,2]
[1,] 4 3
[2,] 2 1
たとえば、キーをヒートマップの下に配置する場合は、次のように指定します。
> lmat = rbind(c(0,3),c(2,1),c(0,4))
> lmat
[,1] [,2]
[1,] 0 3
[2,] 2 1
[3,] 0 4
lwid
とlhei
は、各行と列の高さと幅を指定するベクトルです。デフォルトはc(1.5,4)
両方です。変更lmat
する場合は、これらも変更する必要があるか、おそらく変更する必要があります。上記の例では、他のすべての要素を同じサイズに保ちたいが、下部に薄いカラーキーが必要な場合は、
>lwid = c(1.5,4)
>lhei = c(1.5,4,1)
これで、ヒートマップをプロットする準備が整いました。
>heatmap.2(x,...,lmat = lmat, lwid = lwid, lhei = lhei)
これにより、ヒートマップの上に列デンドログラム、左に行デンドログラム、下にキーを持つヒートマップがプロットされます。残念ながら、キーの見出しとラベルはハードコードされています。
?layout
仕組みの詳細については、を参照してくださいlayout
。
かなり長いコードの par 呼び出しによって定義された指定された領域がありheatmap.2
、元の作成者やこれらの部分の「改訂者」は見たことがありませんが、R ヘルプを参照することもあります。メイン プロットの次元は、2 要素ベクトルによって設定されmargins
ます。変更が必要になる可能性のある場所を次に示します。
#1)
if (!missing(RowSideColors)) {
par(mar = c(margins[1], 0, 0, 0.5))
image(rbind(1:nr), col = RowSideColors[rowInd], axes = FALSE)
#2)
if (!missing(ColSideColors)) {
par(mar = c(0.5, 0, 0, margins[2]))
image(cbind(1:nc), col = ColSideColors[colInd], axes = FALSE)
#3)
par(mar = c(margins[1], 0, 0, margins[2]))
#4)
par(mar = c(margins[1], 0, 0, 0))
#5)
par(mar = c(0, 0, if (!is.null(main)) 5 else 0, margins[2]))
#6
if (key) {
par(mar = c(5, 4, 2, 1), cex = 0.75)