我想使用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)
在这两种情况下,所有定义的分隔符都是绿色(向量的最后一个元素) 我正在尝试做什么呢?
提前致谢
答案 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列与颜色red
和blue
万一你只想指定一个自定义调色板(不是你要求的),这里有一些代码:
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)