如何分别为每个群集的散点图添加均值?

时间:2019-07-30 12:32:28

标签: r

我已经在散点图中绘制了以下数据。

X   Y
90  3
3   0
90  4
30  0
14  0
70  1
20  3
90  5
21  2
15  0
82  2
1   0
1   0

并执行k = 2的k均值聚类分析

results = kmeans(data,2)

plot(data$X , data$Y,
     xlab = "X" , ylab = "Y",
     col = results$cluster , pch = 19)

这给了我以下散点图 link

我已经尝试了以下代码行,但是它只显示了整个数据集的均值。

points(mean(data$X), mean(data$Y))

我想知道如何显示每个单独簇的均值。谢谢

1 个答案:

答案 0 :(得分:0)

对于任何给定数量的集群,这样的事情都应该起作用:

## Your code:
results = kmeans(data,2)
plot(data$X , data$Y,
     xlab = "X" , ylab = "Y",
     col = results$cluster , pch = 19)
## Add a cluster info in the data:
data$cluster <- results$cluster
## Compute the center of each cluster:
clusters <- split(data[, 1:2], data$cluster)
centers <- lapply(clusters, FUN = colMeans)
## Plot those centers:
for (k in 1:length(clusters)) {
    points(x = centers[[k]][1],
           y = centers[[k]][2],
           col = k,
           pch = 1
           )
}

(此解决方案仅使用“ base R”中的函数。)