如何根据预定义的顺序排列heatmap.2()中的列

时间:2013-12-10 02:35:29

标签: r plot

以下代码

 library("gplots")
 mydata <- mtcars
 hclustfunc <- function(x) hclust(x, method="complete")
 distfunc <- function(x) dist(x,method="euclidean")

 heatmap.2(as.matrix(mydata),dendrogram="row",trace="none", margin=c(8,9), hclust=hclustfunc,distfun=distfunc);

生成如下所示的热图:

enter image description here

请注意,在该图中,该列由函数

自动排序

cyl am vs carb wt drat gear gseq mpg hp dsp

我想要做的是创建相同的热图,但我个人 定义的列顺序:

cn <- c("wt","qsec","vs","am","gear","carb", "mpg","cyl","disp","hp","drat" )

我怎样才能做到这一点?

我尝试使用Colv这样但失败了:

heatmap.2(as.matrix(mydata),Colv=cn,dendrogram="row",trace="none", margin=c(8,9), hclust=hclustfunc,distfun=distfunc);

1 个答案:

答案 0 :(得分:16)

我同意帮助页面并不完全清楚,但经过一些实验后,我发现您可以使用FALSE阻止列排序并在输入时对列进行排序。在看到这种情况之后,帮助页面在任何方面都没有错。

heatmap.2(as.matrix(mydata[,cn]), Colv=FALSE, 
          dendrogram="row",trace="none", margin=c(8,9), 
          hclust=hclustfunc,distfun=distfunc)