2017-07-05 5 views
-1

enter image description here J'ai fait un cluster en utilisant la fonction hclust, maintenant je veux dessiner des polygones autour de chaque cluster!Dessiner des polygones autour des clusters à partir de hclust

Comment puis-je le faire? Je n'ai qu'un groupe de point avec l'identifiant du cluster! Par exemple, cette image a deux classes et 4 zones distinctes! Comment je peux obtenir le nombre de ces zones?

Répondre

1

Vous pouvez le faire en utilisant la fonction de coque convexe 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

Merci pour votre réponse! J'ai essayé ceci mais j'obtiens une erreur pour mes données! Je dois mentionner que par exemple j'ai deux points de données pour le cluster 1, 3 forr cluster 2 et ainsi de suite! J'ai cette erreur Erreur dans ruspini [Cluster4 == i,] [ConvexHull,]: nombre incorrect de dimensions –

+0

@OumniaAsadian Vous devrez remplacer vos données par les données Ruspini. Je l'ai juste utilisé comme exemple. – G5W

+0

Oui, j'ai remplacé mes données bien sûr! mais je reçois cette erreur sur mes données! :/ –