您可以手动创建一个树状图对象,但对我来说,这个问题让我有点不清楚为什么在图 2 中需要此信息。如果一个将所有 x 和 y 聚集在一起作为单独组的树状图是添加到图 2 中,树状图的分支将相互交叉,使树状图(使用真实的分支长度或高度)不可读。如果添加了使用一些合适高度的树状图,树状图的分支长度没有意义(它们与真实的相关系数不对应),但树状图仍然告诉树的分支顺序。
无论如何,这是技术上的解决方法(另请参阅Aniko's answer 的类似问题,那里提供详细信息)。
一个使用“真实”的 hclust 对象 (a)(我计算得很快,所以它们可能不完全正确,如果需要,请使用具有平均链接的层次聚类算法来检查)分支长度可以通过以下方式生成手:
a<-list()
a$merge<-matrix(c(-1, -2,
-4, -5,
-3, 1,
-6, 2,
3, 4), ncol=2, byrow=TRUE)
a$height<-c(0.1, 0.12, 0.12, 0.045, 0.1)
a$order<-1:6
a$labels<-c("x1", "x2", "x3", "y1", "y2", "y3")
class(a)<-"hclust"
或者通过使用一些合适的分支长度来获得树状图:
b<-list()
b$merge<-matrix(c(-1, -2,
-4, -5,
-3, 1,
-6, 2,
3, 4), ncol=2, byrow=TRUE)
b$height<-c(0.1, 0.1, 0.1, 0.1, 0.2)
b$order<-1:6
b$labels<-c("x1", "x2", "x3", "y1", "y2", "y3")
class(b)<-"hclust"
之后,最终的情节可以生成为:
heatmap.2(cor,Rowv=as.dendrogram(a),Colv=as.dendrogram(a),trace="none",col=bluered)#fig2
或:
heatmap.2(cor,Rowv=as.dendrogram(b),Colv=as.dendrogram(b),trace="none",col=bluered)#fig2