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

如何在ggplot图表中为特定数据点添加标签?

给ggplot散点图指定数据点添加标签的实现方法

你可以通过geom_text()或geom_label()结合数据筛选,只给pro列值为10的点添加标签,具体实现如下:

方法1:使用geom_text()添加纯文本标签

直接在geom_text()中通过data参数筛选出pro == 10的行,还能调整标签位置避免和散点重叠:

# 先构造数据
data <- structure(list(Countries = c("Afghanistan", "Albania", "Algeria", "Angola", "Antigua and Barbuda"), 
                       a = c(5, 7.38126363692877, 9.99376780626781, 5, 1.21609883215906), 
                       b = c(20155, 6491.65444434, NA, 40311, 42811), 
                       pro = c(10, NA, NA, 10, NA)), 
                  class = "data.frame", row.names = c(NA, -5L))

# 加载ggplot2包
library(ggplot2)

# 绘图代码
data %>% 
  ggplot(aes(x = a, y = b)) +
  geom_point() +
  geom_text(data = subset(data, pro == 10), aes(label = pro), vjust = -1) # vjust调整标签垂直位置

方法2:使用geom_label()添加带背景框的标签

如果希望标签带白色背景框(更醒目),替换成geom_label()即可:

data %>% 
  ggplot(aes(x = a, y = b)) +
  geom_point() +
  geom_label(data = subset(data, pro == 10), aes(label = pro), vjust = -1, fill = "white")

额外说明

  • subset(data, pro == 10)用来精准筛选需要添加标签的数据行,避免给所有点都加标签
  • vjust参数可调整标签与散点的垂直距离,数值可根据实际情况修改(比如vjust=1会把标签放在点下方)
  • 如果需要显示国家名称而非pro值,只需把aes(label = pro)改成aes(label = Countries)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 05:45:32