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

我认为它被硬编码到函数中。回旋处第196行的heatmap.2功能有:

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并编辑它,您可以将其设置为其他内容。可能创建一个新参数,ColSideHeight默认值为 0.2,然后将 0.2 更改为ColSideHeight.

于 2012-10-17T15:18:08.840 回答