如何在最佳K处划线(切割)树形图

时间:2018-03-04 02:20:11

标签: r plot hierarchical-clustering dendrogram

如何在树形图中绘制一条线,对应给定标准的最佳K

像这样:

enter image description here

让我们假设这是我的树形图,最好的K是4。

data("mtcars")
myDend <-  as.dendrogram(hclust(dist(mtcars))) 
plot(myDend)

我知道abline函数能够在图形中绘制线条,类似于上面显示的线条。但是,我不知道如何计算高度,因此该函数用作abline(h = myHeight)

1 个答案:

答案 0 :(得分:2)

hclust附带了获得高度所需的信息。它有一个包含高度的变量。要获得4个星团,您需要在第3个最高和第4个高度之间绘制线条。

HC = hclust(dist(mtcars))
myDend <-  as.dendrogram(HC) 

par(mar=c(7.5,4,2,2))
plot(myDend)

k = 4
n = nrow(mtcars)
MidPoint = (HC$height[n-k] + HC$height[n-k+1]) / 2
abline(h = MidPoint, lty=2)

Dendrogram