2017-07-05 40 views
-1

enter image description here我通过使用函数hclust进行聚类,现在我想绘制每个簇周围的多边形!在hclust的簇周围绘制多边形

我该怎么做?我只有一组具有集群ID的点!

例如这个图像有两个类和4个不同的区域!我如何获得这些区域的数量?

回答

1

您可以使用凸包函数chull来执行此操作。

## First part sets up problem 
library(cluster)  ## For Ruspinin data 
Rusp_HC = hclust(dist(ruspini)) 
Cluster4 = cutree(Rusp_HC, 4) 
plot(ruspini, pch=20, col=rainbow(4)[Cluster4]) 

## Now get the polygons 
for(i in 1:4) { 
    ConvexHull = chull(ruspini[Cluster4 == i, ]) 
    polygon(ruspini[Cluster4 == i, ][ConvexHull,], 
     border=rainbow(4)[i], col=rainbow(4, alpha=0.1)[i]) 
} 

Convex hulls

+0

谢谢您的回答!我试过这个,但是我的数据出错了!我应该提到,例如,我有两个数据点,分别是集群1,集群3,集群2等等!我得到这个错误; ruspini中的错误[Cluster4 == i,] [ConvexHull,]: 维数不正确 –

+0

@OumbiaAsadian您需要用您的数据替换Ruspini数据。我只是以此为例。 – G5W

+0

是的,我当然替换了我的数据!但我的数据出现这个错误! :/ –