You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言:如何将K-means 4聚类结果展示在Biplot中?

解决milk数据集K-means聚类的Biplot可视化问题

原代码的问题点

  • 未定义milk_matrix,直接使用milk数据集即可(flexclust::milk本身就是可用于PCA的数据框)
  • Biplot未关联聚类结果,未设置xlabs参数为聚类成员向量,也未通过颜色区分聚类分组

修正后的完整代码

# 加载包与数据
library("flexclust")
data(milk)

# 对milk数据集做PCA(修正原代码中milk_matrix未定义的问题)
pca_milk <- prcomp(x = milk, center = TRUE, scale. = FALSE, retx = TRUE)

# 执行K-means聚类,分成4类
km4 <- kmeans(milk, centers = 4)
# 查看各聚类的样本数量(可选,用于验证聚类分布)
table(km4$cluster)

# 绘制带聚类标签与颜色区分的Biplot
biplot(pca_milk, 
       main = "Biplot of Milk Dataset with 4 K-means Clusters",
       cex = c(0.7, 1), 
       scale = TRUE,
       # 将xlabs设置为聚类成员向量(每个点显示对应的聚类编号)
       xlabs = as.character(km4$cluster),
       # 按聚类为点上色,增强区分度
       col = c(km4$cluster, rep("black", ncol(milk)))
)

关键代码解释

  • xlabs = as.character(km4$cluster):把每个样本对应的聚类编号(km4$cluster是整数向量)转为字符,作为Biplot中样本点的标签,直接呈现聚类成员归属
  • col = c(km4$cluster, rep("black", ncol(milk))):前半部分用聚类编号作为颜色索引,让同一聚类的样本点颜色一致;后半部分固定变量箭头为黑色,避免变量标签颜色混乱
  • 如果需要对数据做标准化处理(更适合PCA分析),可以将prcomp中的scale. = FALSE改为scale. = TRUE

内容的提问来源于stack exchange,提问作者Rosie Lomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 06:17:14