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

pdu*_*ois 4 plot r

以下代码

 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);
Run Code Online (Sandbox Code Playgroud)

生成如下所示的热图:

在此输入图像描述

请注意,在该图中,该列由该函数自动排序

cyl am vs carb wt drat gear gseq mpg hp dsp

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

cn <- c("wt","qsec","vs","am","gear","carb", "mpg","cyl","disp","hp","drat" )
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

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

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

42-*_*42- 17

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

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