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

如何在R中保存fviz_nbclust绘制的肘部图的XY坐标

解决方案:提取并保存肘部图数据,用ggplot重绘

完全可以通过提取fviz_nbclust返回对象中的原始数据,避免重复耗时计算。fviz_nbclust生成的是ggplot对象,内置了绘图所用的X/Y坐标数据,直接提取即可。

完整示例代码

# 加载数据
df <- USArrests
# 移除缺失值
df <- na.omit(df)
# 标准化变量
df <- scale(df)

library(cluster)
library(factoextra)
library(ggplot2)

# 运行聚类评估并保存为ggplot对象(无需等待绘图渲染)
nbclust_plot <- fviz_nbclust(df, kmeans, method = "wss")

# 提取绘图用的X/Y坐标数据
nbclust_data <- nbclust_plot$data

# 保存数据到本地(避免重复计算)
saveRDS(nbclust_data, "nbclust_wss_data.rds")

# --- 后续使用时直接读取数据,用ggplot自定义绘图 ---
# 读取保存的数据
nbclust_data <- readRDS("nbclust_wss_data.rds")

# 用ggplot重新绘制并自定义格式
ggplot(nbclust_data, aes(x = clusters, y = y)) +
  geom_line(color = "#2E9FDF", linewidth = 1.2) +
  geom_point(size = 3, color = "#E7B800") +
  labs(title = "肘部法则:聚类数与组内平方和",
       x = "聚类数(k)",
       y = "总组内平方和(WSS)") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, size = 14, face = "bold"))

关键说明

  • nbclust_plot$data包含两列:clusters(X轴,聚类数)和y(Y轴,对应方法的评估值,这里是组内平方和)
  • 用saveRDS保存数据比write.csv更稳妥,能完整保留R数据结构
  • 后续调整绘图格式时,直接修改ggplot代码即可,无需重新运行耗时的聚类评估计算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 10:52:35