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

ggplot可视化需求实现:替换散点为聚类编号(或添加编号至散点旁)或按聚类配置样式并添加图例

解决方案:两种需求的实现方法

需求1:替换散点为聚类编号(或添加编号标签)

你有两种灵活的实现方式:

选项A:直接用聚类编号替代散点

把geom_point换成geom_text,将聚类编号作为标签映射进去就搞定了:

library(ggplot2)
library(data.table)

# 你的数据集
cluster <- c(rep(c(1:4), 2))
score <- c(1.3, 7.2, 4.9, 7.5, 6.8, 4.1, 9.9, 5.8)
x_axis <- c(rep("indicator1", 4), rep("indicator2", 4))
dt <- data.table(cluster, score, x_axis)

# 绘制代码
ggplot() + 
  geom_text(data=dt, aes(x=x_axis, y=score, label=cluster))

选项B:在散点旁添加聚类编号

如果想保留散点同时显示编号,可以同时叠加geom_point和geom_text,还能通过nudge_x/nudge_y调整标签位置避免重叠:

ggplot() + 
  geom_point(data=dt, aes(x=x_axis, y=score), size=3) +  # 放大散点更醒目
  geom_text(data=dt, aes(x=x_axis, y=score, label=cluster), 
            nudge_x=0.08,  # 让标签向右偏移一点,避开散点
            color="darkred", size=4)  # 设置标签颜色和大小

需求2:按聚类设置不同形状/颜色并添加图例

只需要把cluster变量映射到shape和color的美学属性里,ggplot会自动生成图例,你也可以自定义样式:

基础版本(默认样式)

ggplot() + 
  geom_point(data=dt, aes(x=x_axis, y=score, shape=factor(cluster), color=factor(cluster)), 
             size=3)  # 放大点的大小,让形状颜色更清晰

这里把cluster转成因子很重要,因为它是分类变量,这样ggplot会正确识别并生成分类图例。

自定义形状和颜色的版本

如果想指定自己喜欢的样式,用scale_shape_discrete和scale_color_manual就能调整:

ggplot() + 
  geom_point(data=dt, aes(x=x_axis, y=score, shape=factor(cluster), color=factor(cluster)), 
             size=3) +
  scale_shape_discrete(name="聚类编号",  # 修改图例标题
                       breaks=c("1","2","3","4"),
                       labels=c("聚类1","聚类2","聚类3","聚类4")) +
  scale_color_manual(name="聚类编号",
                     breaks=c("1","2","3","4"),
                     labels=c("聚类1","聚类2","聚类3","聚类4"),
                     values=c("#FF6B6B", "#4ECDC4", "#45B7D1", "#96CEB4"))  # 自定义配色

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 21:48:12