2013-04-29 17 views
0

欲绘制热图,使用heatmap.2(),其中,我想在几种不同的颜色来定义colseps。
我已通过级联试图specifiyng sepcolor:řheatmap.2 COLSEP作为矢量

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"))  

此外,我试图创建一个字符向量按所需顺序specfiying所需的颜色和分配此载体以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

什么包'heatmap.2()'的呢? – 2013-04-29 13:12:46

+0

heatmap.2()来自软件包gplots() – user1614062 2013-04-29 13:31:35

回答

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) 
+0

但'colsep'指示列。所以它必须是一个数字。 – csgillespie 2013-04-29 14:02:19

+0

谢谢!那是我所寻找的。但我仍然不确定如何控制颜色。最终我做到了这一点:colsep = c(25,35,60,85,95,120,155,165,180,205,215),sepcolor = c(“青色”,“白色”)。偶尔我得到了我想要的东西,这是一个每隔60列的白色圆珠笔和中间的青色圆珠笔。但是为什么?这不是R中向量的工作方式。我将补充一点,我试图绘制的矩阵是由四个数据框组成的,每个数据框有60列,与cbind()相结合。这可能与colsep evrey 60列bieng white有什么关系?再次感谢。 – user1614062 2013-04-29 14:38:46