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

ggplot2设置scale_y_continuous后Y轴标签不显示问题求助

问题根因

Y轴标签不显示和scale_y_continuous的配置没有关系,是你写的theme配置把Y轴标题强制隐藏了:

theme(axis.title.y = element_blank(),

这行代码的作用就是直接删除Y轴标题元素,不管你在ylab()、scale_y_continuous()里给Y轴设置什么文本,只要这行配置存在,Y轴标签永远不会渲染出来,你之前试的所有标签设置方法不生效都是这个原因。

修复方法

直接删掉theme里的axis.title.y = element_blank()这行即可。
另外你代码里重复设置了两次Y轴标签:一次是ylab("My y label"),一次是scale_y_continuous("My y label"),重复设置不会报错但属于冗余代码,建议把轴标签统一放到labs()里配置,逻辑更清晰。

修复后的完整可运行代码:

library(ggplot2)

scores<-c(2,0,0,0,0,1,12,9,10,11,23,47,71,93,180,125,147,88,52,51,9,2)
Frequency <- c(0:21)
Final_Score = scores
tsdata <- data.frame(Final_Score, Frequency)

p <- ggplot(data = tsdata, aes(x = Frequency, y = scores)) +
  geom_bar(stat = "identity",aes(fill = scores), colour = "white", width = 1) +
  scale_fill_gradient(low = "#E6FFFF", high = "steelblue") +
  geom_text(aes(label=scores), vjust=-0.4, color ="black", size=3.5) +
  labs(
    title = "",
    x = "Final Score",
    y = "My y label"
  ) +
  scale_x_continuous(limits=c(-0.5, 21.5), breaks = c(0:21)) +
  theme(
    axis.line.y = element_line(),
    axis.line.x = element_line(),
    axis.text = element_text(size=10),
    axis.title = element_text(size=14,face="bold"),
    panel.grid.major.y = element_line(colour = "lightgray"),
    panel.background = element_rect(fill = "white")
  )
p
补充说明

ggplot2中theme的元素显示规则优先级高于标签、刻度等内容设置类函数:只要对应元素在theme中被设置为element_blank(),无论你怎么修改内容配置,对应元素都不会显示。后续调图如果遇到标签、刻度线不显示的问题,可以优先检查theme里是不是把对应元素设为了隐藏状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 16:24:29