1

パッケージのheatmap.2関数で、水平サイドバーの高さ(引数gplotsで示される)を増やしながら、ヒートマップ自体の行の高さを減らすにはどうすればよいですか?ColSideColors

library('gplots')
prob_matrix=replicate(100, rnorm(20)) 
ids=paste("patient",c(1:100),sep="_")
type_colors=sample(c("red","blue","cyan","pink","yellow","green"), length(ids), replace = TRUE, prob = NULL)
heatmap.2(prob_matrix, ColSideColors=type_colors,RowV=NULL,trace="none")

によって生成される水平サイドバーのColSideColors=subtype_colors高さを高くし、ヒートマップの行の高さを低くしたいと思います。

拡張のために、プロットを出力するpdfまたはグラフィックスデバイスの幅のサイズに関係なく、各列の幅を編集するにはどうすればよいですか?したがって、上記では、ヒートマップの列の幅を大きくしたいと思いprob_matrixます。

4

1 に答える 1

1

関数にハードコードされていると思います。heatmap.2関数のラウンドアバウト行 196 があります。

if (!missing(ColSideColors)) {
            if (!is.character(ColSideColors) || length(ColSideColors) != 
                nc) 
                stop("'ColSideColors' must be a character vector of length ncol(x)")
            lmat <- rbind(lmat[1, ] + 1, c(NA, 1), lmat[2, ] + 
                1)
            lhei <- c(lhei[1], 0.2, lhei[2])
        }

その 0.2 は、カラー バーに割り当てられた高さです。コピーしheatmap.2て編集すると、別のものに設定できます。おそらく、デフォルトの 0.2 で新しい引数を作成し、ColSideHeightその 0.2 を に変更しColSideHeightます。

于 2012-10-17T15:18:08.840 に答える