1

我正在尝试通过 heatmap.2 生成一个绘图,但想了解聚类是如何完成的。所以,我试图在函数调用之前复制树状图,并用这些进行绘图。然而,最终的数字是不同的。任何线索?

热图 1:

h<-heatmap.2(dat,col=redgreen, trace="none",
          xlab="Samples", ylab="Genes" ,scale="none" )

对比

热图 2:

Rowv <- hclust( dist(dat))   #defaults to  method="euclidean" and method="complete") 
Colv <- hclust(dist(t(dat))) #same as above

heatmap.2(dat, Rowv=as.dendrogram(Rowv), Colv=as.dendrogram(Colv),
          col=redgreen, trace="none",
          xlab="Samples", ylab="Genes",scale="none" )

这两个会生成不同的热图。任何线索为什么?

4

2 回答 2

0

尝试

Rowv <- as.dendrogram(hclust(dist(X)))

也许as.dendrogram在这里有所作为。R仍然是一团糟^W^W对我来说是个谜。

于 2013-11-11T08:07:07.183 回答
0

我来晚了,但我会努力的。我不知道heatmap.2,但热图默认重新排序树状图。

要获得与不提供预先计算的树状图时得到的结果完全相同的结果,您必须说(对于行树状图):

Rowv <- hclust( dist(dat))
Rowv <- reorder(as.dendrogram(Rowv), rowMeans(dat)) # reorder by the row means of dat <br/>

heatmap(dat, Rowv=Rowv, Colv=Colv=as.dendrogram(Colv),col=redgreen, trace="none",xlab="Samples", ylab="Genes",scale="none" ) 
# leaving everything else as in your original message 
于 2016-05-05T17:41:12.733 回答