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

ggplot绘制分组折线图异常:期望10条折线却得堆叠竖线

问题原因分析
  • group=1参数错误地将所有年份的数据强制归为同一组,ggplot会尝试把同一个month下不同年份的emp值连接起来,从而形成垂直竖线。
  • 你的month列是字符类型,同一月份对应多个年份的数据点会在x轴同一位置堆叠,加上错误的分组设置,最终呈现出堆叠的竖线效果,而非按年份分开的折线。
解决方法
  1. 修正分组逻辑:移除group=1,改用group=year,让ggplot按年份分别绘制折线。
  2. 将month转为有序因子:确保x轴按自然月份顺序排列,避免字符型带来的字母序混乱。

完整修正代码

# 将month转为有序因子,指定正确的月份顺序
new_df$month <- factor(new_df$month, 
                       levels = c("Jan", "Feb", "Mar", "Apr", "May", "Jun", 
                                  "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"),
                       ordered = TRUE)

# 绘制折线图
ggplot(new_df, aes(x = month, y = emp, group = year, color = as.factor(year))) + 
  geom_line() +
  labs(x = "月份", y = "员工数", color = "年份") # 可选:添加轴标签和图例标题

补充说明

  • 把year转为因子(as.factor(year))可以让ggplot正确识别年份为离散分组变量,颜色区分更清晰。
  • 如果你的数据里每年只有10个月份(如示例所示),折线会自动对应现有月份的点连接,不影响效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 10:20:43