R语言,分别用kmeans与k-中心点算法将8个数据点聚类为3个簇并绘出数据分布图及用“X”绘制簇中心点。数据点分别为:A1(2,10),A2(2,5),A3(8,4),A4(5,8),A5(7,5), A6(6,4),A7(1,2),A8(4,9)。
时间: 2024-12-19 21:25:42 浏览: 25
R语言是一种专门用于统计计算和图形展示的语言,常用于数据分析和科学计算。为了对给定的数据点进行聚类并可视化结果,我们可以使用`kmeans`函数结合`ggplot2`包来完成。首先,我们需要导入必要的库,然后定义数据,接着进行聚类,最后绘制图形。
以下是步骤:
1. **安装和加载所需库**:
```r
install.packages("ggplot2") # 如果未安装
install.packages("cluster")
library(ggplot2)
library(cluster)
```
2. **创建数据框**:
```r
data_points <- data.frame(
x = c(2, 2, 8, 5, 7, 6, 1, 4),
y = c(10, 5, 4, 8, 5, 4, 2, 9)
)
names(data_points) <- c("x", "y")
```
3. **KMeans聚类**:
```r
# 定义簇数 k = 3
num_clusters <- 3
# 进行kmeans聚类
cluster_result <- kmeans(data_points, centers = num_clusters)
```
4. **获取簇中心点**:
```r
centers <- cluster_result$centers
```
5. **绘制数据分布图**:
```r
# 创建散点图,并用不同颜色表示每个簇
scatter_plot <- ggplot(data = data_points, aes(x = x, y = y)) +
geom_point(aes(color = factor(cluster_result$cluster)), size = 4) +
geom_text(aes(label = paste0("A", seq_along(data_points))), vjust = -0.5) + # 添加标记
geom_point(data = centers, aes(x = x, y = y), color = "black", shape = 21, size = 6) # 绘制簇中心
# 显示图形
scatter_plot
```
以上代码将生成一个散点图,其中数据点用不同颜色表示三个簇,簇中心用黑色的大“X”标记。
阅读全文