我正在进行聚类分析,并希望通过轮廓图验证聚类结果。从其他人的代码中了解到,情节函数为我绘制了轮廓,当我为我的情节指定3种颜色时,它给了我想要的东西,但是,如果我使用相同的方式指定密度和角度,则所有绘图都会在同时。我想给出不同纹理的不同簇。这有什么办法吗?
这是代码和结果(请忽略低轮廓宽度值):
dE2 <- dissE^2 #dissimilarity matrix
sw2 <- silhouette(clust.fit$clustering, dE2)
pdf("silhouette plot.pdf")
sil_plot <- plot(sw2, col=c("#CEEAE6","#291B4F","#FCD42B"),
angle = c(0,45,90), density = c(5,10,20), main = "silhouette plot")
dev.off()
问题是您为angle
和density
指定了三个值 - 每个群集一个 - 但您必须为每个点指定一个值。您的三个值正在被回收,因此它们会出现在您的情节中的所有位置。相反,尝试:
sil_plot <- plot(sw2, col=c("#CEEAE6","#291B4F","#FCD42B"),
angle = c(0,45,90)[clust.fit$clustering],
density = c(5,10,20)[clust.fit$clustering],
main = "silhouette plot")