0

我想使用 heatmap.2() 绘制热图,我想在其中定义几种不同颜色的 colseps。
我尝试通过连接指定 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 回答