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

如何在ggplot中绘制多变量折线图?求数据格式转换方法

宽格式数据转长格式+绘制多维度折线图(R)

一、宽转长格式(核心步骤)

用tidyr包的pivot_longer()函数可以快速将你的宽格式数据转换成「年份、维度、数值」的三列长格式:

# 安装并加载tidyr(首次使用需安装)
install.packages("tidyr")
library(tidyr)

# 假设你的原始数据框名为df,Jahr是年份列,其余5列是各维度数据
df_long <- pivot_longer(
  data = df,
  cols = -Jahr,  # 排除年份列,将剩余所有列转为维度-数值对
  names_to = "维度",  # 新增列,存储原维度列的名称
  values_to = "数值"  # 新增列,存储对应维度的数值
)

如果你的维度列有明确名称(比如收入不平等、教育不平等),也可以直接指定列名,更精准:

df_long <- pivot_longer(
  data = df,
  cols = c(收入不平等, 教育不平等, 健康不平等, 性别不平等, 区域不平等),
  names_to = "维度",
  values_to = "数值"
)

二、用ggplot绘制多折线图

转换后的数据可以直接用于ggplot绘图,每个维度对应一条折线:

# 安装并加载ggplot2(首次使用需安装)
install.packages("ggplot2")
library(ggplot2)

ggplot(df_long, aes(x = Jahr, y = 数值, color = 维度)) +
  geom_line(linewidth = 1) +  # 设置折线宽度,让图更清晰
  labs(
    x = "年份",
    y = "社会不平等程度",
    title = "各维度社会不平等随时间变化趋势",
    color = "维度类型"
  ) +
  theme_minimal()  # 选用简洁的主题,也可以换成theme_bw()等

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:42:40