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

ggplot2组合geom_bar与geom_line时geom_line不显示问题求解

问题原因

x轴变量AIRLINE为离散分类值,geom_line默认按x轴取值自动分组,每个航空公司分类下仅有1个DELAY_PERCENTAGE观测值,无法生成连线,需手动指定group参数强制所有观测归为同一组完成连线。

修正代码

在geom_line的美学映射中添加group = 1即可正常显示折线:

delay.df %>% 
  ggplot() + 
  geom_bar(aes(x = AIRLINE, y = TOTAL_DELAYS), stat = "identity") + 
  geom_line(aes(x = AIRLINE, y = DELAY_PERCENTAGE, group = 1), size = 1, colour = "blue") 

可选优化:双Y轴适配

如果TOTAL_DELAYS(总延误次数)和DELAY_PERCENTAGE(延误占比)数值量级差距过大,折线会因为数值过小贴在图表底部显示效果差,可以添加次Y轴做数值适配:

# 系数根据你的实际数值范围调整,比如总延误最大值为2000、占比最大值为100时,系数可设为20
delay.df %>% 
  ggplot() + 
  geom_bar(aes(x = AIRLINE, y = TOTAL_DELAYS), stat = "identity") + 
  geom_line(aes(x = AIRLINE, y = DELAY_PERCENTAGE * 20, group = 1), size = 1, colour = "blue") +
  scale_y_continuous(
    name = "总延误次数",
    sec.axis = sec_axis(~./20, name = "延误占比(%)")
  )

你使用的数据表结构参考:
delay.df

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:39:03