0

heatmap.2() を使用してヒートマップを描画したいと思います。ここで、colsep をいくつかの異なる色で定義します。
連結によって sepcolor を指定しようとしました:

heatmap.2 (as.matrix(order_by27_T[rowsToDraw,]), Rowv=FALSE, Colv=FALSE,               dendrogram="none", col=hmColors, breaks=seq(0,1,(1/120)), trace="none", colsep=c(60,120,180), sepcolor=c("white","pink","green"))      

さらに、目的の色を目的の順序で指定する文字ベクトルを作成し、このベクトルを sepcolor に割り当てようとしました。

sepColour<-c("white","pink","green")
heatmap.2 (as.matrix(order_by27_T[rowsToDraw,]), Rowv=FALSE, Colv=FALSE, dendrogram="none", col=hmColors, breaks=seq(0,1,(1/120)), trace="none", colsep=c(60,120,180), sepcolor=sepColour)      

どちらの場合も、定義されているセパレータはすべて緑色 (ベクトルの最後の要素) でした。
私がやろうとしていることはまったく可能ですか?

前もって感謝します

4

1 に答える 1

1

colsep引数は、列を色のスペースで区切るかどうかを示す数値のベクトルを取ります。ドキュメントから:

(optional) vector of integers indicating which columns or rows should be separated from the preceding columns or rows by a narrow space of color sepcolor

あなたの例では、これは次のようになります。

heatmap.2(as.matrix(order_by27_T[rowsToDraw,]), colsep=1:5,
     sepcolor=c("red", "blue"), ....)

これにより、列 1 から 5 が色redblue


カスタム パレットのみを指定したい (要求したものではない) 場合に備えて、いくつかのコードを次に示します。

full = matrix(runif(100, -5, 5), ncol= 10)
my_p = colorRampPalette(c("white","pink","green"))
breaks = c(seq(min(full), 0, length.out=128),
           seq(0, max(full), length.out=128))
heatmap.2(full, dendrogram="row", Colv=FALSE,
          col=my_p, key=TRUE, 
          breaks=breaks, symkey=FALSE, density.info="none",
          trace="none", cexRow=0.5, cexCol=0.75)
于 2013-04-29T13:42:50.990 に答える