r heatmap.2 colsep作为矢量

时间:2013-04-29 13:09:42

标签: r heatmap

我想使用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)      

在这两种情况下,所有定义的分隔符都是绿色(向量的最后一个元素) 我正在尝试做什么呢?

提前致谢

1 个答案:

答案 0 :(得分:0)

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)