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

求助:修正ggplot生成的双重分组并列箱线图显示异常问题

问题修正方案

1. 解决单个机场仅显示一种Direction箱线图的问题

核心原因是ggplot未正确识别ORIGIN与Direction的组合分组逻辑。需在aes()中添加group = interaction(ORIGIN, Direction),明确指定按两个变量的交互项分组绘制箱线图。

同时建议先验证数据分布:用table(sba_connections_boxplot$ORIGIN, sba_connections_boxplot$Direction)检查每个机场是否确实存在两种Direction类型的数据,若某机场仅对应一种Direction,自然只能生成单个箱线图。

2. 解决箱线图纵向压缩的问题

当前使用ylim(-100, 500)会直接删除超出范围的行数据,导致箱线图的统计计算(中位数、四分位数等)失真,引发形态压缩。应替换为coord_cartesian(ylim = c(0, 500))——该函数仅缩放绘图视图,不会删除数据,能完整保留箱线图的形态。另外航班时长不可能为负数,将下限设为0更符合实际逻辑。

修正后的完整代码

ggplot(sba_connections_boxplot, aes(x = ORIGIN,
             y = ACTUAL_ELAPSED_TIME,
             fill = Direction,
             group = interaction(ORIGIN, Direction))) +  # 添加组合分组项
  geom_boxplot(staplewidth = 0.5) +
  theme_minimal(base_size = 12) +
  ggtitle(
    "Distribution of Flight Durations for SBA Flights",
    subtitle = "Grouped by airport and direction"
  )+ 
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1)  # 优化x轴标签对齐
  )+
  coord_cartesian(ylim = c(0, 500)) +  # 替换ylim避免数据丢失
  labs(x = "Airport", y = "Flight Duration (minutes)")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 09:30:10