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

使用ggplot的geom_col绘图时如何将y轴最小刻度150000置于图表底部

问题原因

你之前调整失败的核心原因是:scale_y_continuous(limits = ...) 和 ylim() 都会直接过滤掉取值范围外的数据,而柱状图的柱体默认从y=0的位置开始绘制,当你把y轴下限设为150000时,小于这个值的柱体底部区域会被判定为超出范围直接清除,最终导致柱子全部消失。

解决方法

使用coord_cartesian() 函数设置坐标轴可视范围即可,该函数只会裁剪绘图的显示区域,不会修改或删除原始数据,完全不影响柱体的正常绘制。

修改后完整代码

ggplot(data = all_trips_v3)+
  geom_col(aes(x= weekday, y=number_of_rides, fill = member_casual),
           position = "dodge")+
  ggtitle("Total Weekday Rides of Casuals and Members")+
  scale_y_continuous(breaks = c(150000, 200000, 250000, 300000,
                                350000, 400000, 450000), 
                     name = "Number of Rides")+
  scale_x_discrete(name = "Weekday") +
  # 新增此行设置y轴可视范围,不会过滤原始数据
  coord_cartesian(ylim = c(150000, 450000))

补充说明

如果你希望柱状图的柱底直接从150000开始(而非保留0到150000的隐藏部分),可以先对数据做转换:把number_of_rides减去150000之后再绘图,同时修改y轴的刻度标签即可,但这种方法容易误导读者对数据的判断,更推荐使用上述coord_cartesian方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:27:03