如何在R中创建集群图?

slo*_*ype 12 plot r cluster-analysis

如何在不使用clustplot的情况下在R中创建聚类图?

我试图掌握一些聚类(使用R)和可视化(使用HTML5 Canvas).

基本上,我想创建一个集群图但不是绘制数据,我想得到一组2D点或坐标,我可以拉到画布上做一些可能相当的东西(但我不知道如何做到这一点) .我想象我:

  1. 为整个数据集创建相似度矩阵(使用dist)
  2. 使用kmeans或类似的东西对相似性矩阵进行聚类(使用kmeans)
  3. 使用MDS或PCA绘制结果 - 但我不确定步骤2和3如何关联(cmdscale).

我在这里,这里这里检查了问题(最后一个是最常用的).

EDi*_*EDi 31

你的意思是这样的吗?对不起,但我对HTML5 Canvas一无所知,只有R ...但我希望它有帮助......

首先,我使用kmeans对数据进行聚类(请注意,我没有对距离矩阵进行聚类),而不是计算距离matix并使用cmdscale绘制它.然后我添加颜色到MDS图,对应于由kmeans识别的组.还有一些不错的附加图形功能.

您可以从cmdscale创建的对象访问坐标.

### some sample data
require(vegan)
data(dune)

# kmeans
kclus <- kmeans(dune,centers= 4, iter.max=1000, nstart=10000)

# distance matrix
dune_dist <- dist(dune)

# Multidimensional scaling
cmd <- cmdscale(dune_dist)

# plot MDS, with colors by groups from kmeans
groups <- levels(factor(kclus$cluster))
ordiplot(cmd, type = "n")
cols <- c("steelblue", "darkred", "darkgreen", "pink")
for(i in seq_along(groups)){
  points(cmd[factor(kclus$cluster) == groups[i], ], col = cols[i], pch = 16)
}

# add spider and hull
ordispider(cmd, factor(kclus$cluster), label = TRUE)
ordihull(cmd, factor(kclus$cluster), lty = "dotted")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述