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

在R中提取fviz_clust绘图坐标,用ggplot自定义K-means聚类图

提取fviz_cluster绘图的坐标用于ggplot自定义
  • 先保存fviz_cluster生成的ggplot对象,再用ggplot_build()解析它的底层数据:

    # 保存聚类图对象
    cluster_plot <- fviz_cluster(kmeans_sag, pcScores_sag[, -5], ellipse.type = "norm")
    # 解析绘图数据
    plot_data <- ggplot_build(cluster_plot)$data
    
  • 提取数据点坐标:plot_data[[1]]是散点数据,包含PCA主成分轴的x/y坐标、聚类分组cluster等字段,可直接作为ggplot的数据源。

  • 提取聚类椭圆(多边形)坐标:plot_data[[2]]是椭圆的多边形顶点数据,包含x/y坐标、分组group字段,用于绘制自定义聚类边界。

  • 自定义ggplot示例:

    library(ggplot2)
    
    # 拆分数据
    point_df <- plot_data[[1]]
    ellipse_df <- plot_data[[2]]
    
    # 自定义绘图
    ggplot() +
      geom_polygon(data = ellipse_df, aes(x = x, y = y, group = group, fill = factor(group)), alpha = 0.2) +
      geom_point(data = point_df, aes(x = x, y = y, color = factor(cluster), shape = factor(cluster)), size = 3) +
      # 手动设置颜色、形状
      scale_color_manual(values = c("#FF6B6B", "#4ECDC4", "#45B7D1")) +
      scale_fill_manual(values = c("#FF6B6B", "#4ECDC4", "#45B7D1")) +
      scale_shape_manual(values = c(16, 17, 18)) +
      labs(x = "PC1", y = "PC2", color = "聚类分组", fill = "聚类分组", shape = "聚类分组") +
      theme_minimal()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 19:40:04