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

如何在R的ggplot中为Y轴添加双标签?

解决Y轴刻度添加自定义标签的问题

直接通过scale_y_continuous()自定义Y轴的刻度标签即可,不需要额外添加副轴。修改后的完整代码如下:

ggplot(q19.long, aes(x = species, y = score, fill = species)) +
  geom_boxplot(alpha = 0.5) +
  labs(y = "Score", x = "", title = questiontitle) +
  theme(axis.text.x = element_blank(), 
        axis.ticks.x = element_blank(), 
        legend.title = element_blank()) +
  scale_fill_discrete(labels = c("Rat","Vampire fly","Blackberry","Smooth-billed ani","Goat","Frog","Cat","Guava","Dog","Elephant grass")) +
  # 自定义Y轴刻度与对应标签
  scale_y_continuous(
    breaks = c(1, 2, 3, 4, 5),
    labels = c("1\n完全不同意", "2", "3", "4", "5\n完全同意")
  )

关键说明:

  • breaks参数指定要显示的Y轴刻度,这里保留1到5的全刻度
  • labels参数对应每个刻度的显示文本,用\n实现换行,让自定义文字显示在刻度值下方,和目标图效果一致

如果不想修改原有刻度样式,也可以用手动添加文本的方式:

ggplot(q19.long, aes(x = species, y = score, fill = species)) +
  geom_boxplot(alpha = 0.5) +
  labs(y = "Score", x = "", title = questiontitle) +
  theme(axis.text.x = element_blank(), 
        axis.ticks.x = element_blank(), 
        legend.title = element_blank()) +
  scale_fill_discrete(labels = c("Rat","Vampire fly","Blackberry","Smooth-billed ani","Goat","Frog","Cat","Guava","Dog","Elephant grass")) +
  # 手动添加文本到对应刻度旁
  annotate("text", x = -0.3, y = 1, label = "完全不同意", hjust = 1) +
  annotate("text", x = -0.3, y = 5, label = "完全同意", hjust = 1)

这种方式需要调整x参数来控制文本在Y轴侧的位置,适合保留原刻度显示的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:18:26