我有一个要聚类的数据框。我现在正在使用 hclust
。在我的数据框中,有一个 FLAG
列,我想以此为树状图着色。通过生成的图片,我试图找出各种 FLAG
类别之间的相似之处。我的数据框看起来像这样:
FLAG ColA ColB ColC ColD
我在 colA
、colB
、colC
和 colD
上进行聚类。我想将这些聚类并根据 FLAG
类别为它们着色。例如 - 如果为 1,则为红色,如果为 0,则为蓝色(我只有两个类别)。现在我正在使用原始版本的聚类绘图。
hc<-hclust(dist(data[2:5]),method='complete')
plot(hc)
在这方面的任何帮助将不胜感激。
最佳答案
如果您想根据某个变量为树状图的分支着色,则以下代码(主要取自 dendrapply 函数的帮助)应该会给出所需的结果:
x<-1:100
dim(x)<-c(10,10)
groups<-sample(c("red","blue"), 10, replace=TRUE)
x.clust<-as.dendrogram(hclust(dist(x)))
local({
colLab <<- function(n) {
if(is.leaf(n)) {
a <- attributes(n)
i <<- i+1
attr(n, "edgePar") <-
c(a$nodePar, list(col = mycols[i], lab.font= i%%3))
}
n
}
mycols <- groups
i <- 0
})
x.clust.dend <- dendrapply(x.clust, colLab)
plot(x.clust.dend)
关于r - 使用现有列的树状图的颜色分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23328663/