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

如何在R中基于聚类分析结果绘制带var1标签的气泡图

R实现带文本标签的聚类气泡图

要实现聚类分组的气泡图,同时在气泡内显示var1的取值,用ggplot2就能轻松搞定。步骤如下:

1. 加载所需工具包

library(ggplot2)
library(dplyr)

2. 处理示例数据(添加辅助位置列)

先给每个聚类内的样本分配y轴位置,避免同聚类内的气泡重叠:

set.seed(1)
df <- data.frame(cluster = rep(1:3,5),
                 var1 = sample(rep(LETTERS[1:10]),15,replace=TRUE),
                 total = sample(30:300,15, replace=TRUE))

# 为每个cluster内的样本生成y轴位置序号
df <- df %>%
  group_by(cluster) %>%
  mutate(y = row_number()) %>%
  ungroup()

3. 绘制带文本标签的气泡图

ggplot(df, aes(x = factor(cluster), y = y)) +
  # 绘制气泡,大小由total列决定
  geom_point(aes(size = total), color = "#4292c6", alpha = 0.7, shape = 21, fill = "#e6f2ff") +
  # 在气泡中心添加var1的文本标签
  geom_text(aes(label = var1), size = 4, color = "black") +
  # 调整气泡大小的范围,避免过大或过小
  scale_size(range = c(6, 18)) +
  # 设置坐标轴和图例标签
  labs(x = "聚类编号", y = "", size = "Total数值") +
  # 美化主题,隐藏无意义的y轴刻度
  theme_minimal() +
  theme(
    axis.text.y = element_blank(),
    panel.grid = element_blank()
  )

关键参数说明

  • shape = 21:使用带填充色的圆形气泡,让内部文本更清晰
  • mutate(y = row_number()):给同聚类内的样本分配不同y轴位置,解决气泡重叠问题
  • scale_size(range = c(6, 18)):根据你的数据范围调整气泡大小区间,让视觉效果更合理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 00:32:39