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

ggplot分面图:在绘图内修改Y轴刻度文本(截断下划线后内容)

解决方法:在ggplot内修改Y轴刻度文本(无需修改原始数据框)

你完全不用改动原始的df数据框,只需要在ggplot的刻度设置里添加一个自定义的标签处理函数就行。因为你用了coord_flip(),原来的X轴(name列)变成了Y轴,所以我们要针对scale_y_discrete来调整标签:

修改后的完整代码如下:

ggplot() + 
  geom_bar( data=df, color = "white", stat = "identity", position='dodge', aes(x=name, y=value) ) + 
  coord_flip() + 
  geom_text(data = df, angle = 0, hjust = 1, aes(x=name, y=value, label=value) ) + 
  facet_wrap(~ var, scales = "free", ncol = 2) + 
  # 关键:在这里添加scale_y_discrete来处理标签
  scale_y_discrete(labels = function(x) gsub("[_].*$", "", x)) +
  theme( axis.text.x=element_blank(), axis.title.y=element_blank() )

关键部分解释:

  • scale_y_discrete(labels = function(x) gsub("[_].*$", "", x)):这个匿名函数会接收Y轴的每个原始标签(也就是name列的每个值),用gsub把下划线_及其后面的所有内容替换为空,只保留下划线前面的部分。
  • 这种方式是在刻度标签层面做处理,完全不会修改原始数据框df里的内容,完美匹配你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:55:07