2017-07-05 37 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

是的,我當然替換了我的數據!但我的數據出現這個錯誤! :/ –