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

R语言:如何编辑数据框在同一张图中绘制多折线图

解决思路:将宽格式数据转为长格式后绘图

你的核心问题是当前数据是宽格式(行=类别,列=月份),而绘图工具(比如ggplot2)更适配**长格式(tidy data)**来实现分组映射。无需拆分数据框,通过一步数据重塑就能解决问题:

  • 第一步:把宽格式转成长格式
    用tidyr包的pivot_longer函数,将所有月份列合并为「月份」「数值」两列,同时保留类别列。示例代码(假设你的数据框名为df):

    library(tidyr)
    library(dplyr)
    
    # 先把行名(Group.1类别)转为正式数据列
    df_tidy <- df %>%
      tibble::rownames_to_column(var = "Group.1") %>%
      # 重塑:除Group.1外,其他列都是月份,转成"月份"和"数值"两列
      pivot_longer(cols = -Group.1, names_to = "月份", values_to = "数值")
    
  • 第二步:用ggplot2绘制多折线图
    长格式数据可直接将Group.1映射到颜色和分组,自动生成每个类别对应的折线:

    library(ggplot2)
    
    ggplot(df_tidy, aes(x = 月份, y = 数值, color = Group.1, group = Group.1)) +
      geom_line(linewidth = 1) + # 可根据需求调整线宽
      labs(x = "月份", y = "数值", color = "类别") +
      theme_minimal()
    

你之前转置数据后仍为宽格式(列变为类别),无法让绘图工具直接识别每个类别对应的数值系列;而长格式每行代表一个「类别-月份-数值」的独立观测,完美匹配绘图的映射逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:45:57