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

使用geom_label_repel如何移除ggplot图表左侧标签

问题解决方法

你当前的绘图代码中调用了两次geom_text_repel():

  • 第一次调用没有指定独立的x/y映射,默认使用全局美学配置中的x1、y1,也就是左侧端点的坐标来绘制标签
  • 第二次调用单独指定了aes(x2, y2),对应右侧端点的标签绘制

要移除左侧所有标签,直接删除第一次geom_text_repel()的调用代码即可,调整后的完整代码如下:

set.seed(42)
# 需提前加载依赖包
library(ggplot2)
library(ggrepel)

d <- data.frame(
  x1 = 1,
  y1 = rnorm(10),
  x2 = 2,
  y2 = rnorm(10),
  lab = state.name[1:10]
)

p <- ggplot(d, aes(x1, y1, xend = x2, yend = y2, label = lab, col = lab)) +
  geom_segment(size = 1) +
  guides(color = "none") +
  theme(axis.title.x = element_blank()) +
  # 仅保留对应右侧标签的geom_text_repel调用即可
  geom_text_repel(
    aes(x2, y2), nudge_x = 0.1, direction = "y", hjust = "left"
  )

p

如果你使用的是带边框的geom_label_repel(),调整逻辑完全一致,仅保留对应右侧坐标的调用即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:36:02