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

如何为ggplot添加对应每个散点的y轴数值标签?

在ggplot散点旁显示y轴数值的方法

要给每个散点旁边加上对应的y值标签,用geom_text()或geom_label()图层就能搞定——前者是纯文本,后者会给文字加个背景框,按需选择即可。

基础示例

先拿一份模拟数据和基础散点图举例:

library(ggplot2)

# 生成测试数据
df <- data.frame(
  x = 1:5,
  y = c(3.2, 5.1, 2.8, 4.5, 6.0)
)

# 绘制基础散点图
base_plot <- ggplot(df, aes(x = x, y = y)) +
  geom_point(size = 3, color = "#2196F3")

直接添加标签

在基础图后面拼接geom_text(),把label映射到y变量就行:

base_plot + geom_text(aes(label = y), hjust = 0, vjust = 0, nudge_x = 0.1)
  • hjust/vjust控制文字的水平/垂直对齐方式,nudge_x让文字往x轴正方向偏移一点,避免和散点重叠;需要上下偏移就用nudge_y,数值可以根据图表情况自行调整。

偏好带背景的标签就换成geom_label():

base_plot + geom_label(aes(label = y), hjust = 1, vjust = 1, nudge_y = -0.2, fill = "white", size = 3)

调整数值显示格式(可选)

如果需要控制y值的小数位数,用sprintf()就能实现:

# 保留1位小数
base_plot + geom_text(aes(label = sprintf("%.1f", y)), hjust = 0, nudge_x = 0.1)

避坑提示

  • 确保aes(label = y)里的y和你的数据列名一致,别写错变量名
  • 当数据点密集时,添加check_overlap = TRUE可以自动隐藏重叠的标签:
base_plot + geom_text(aes(label = y), check_overlap = TRUE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 18:46:11