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

如何在R中绘制多列表格数据:按ID连线展示年份与数值关系

在R语言中制作分组折线图的步骤

嘿,我来帮你搞定这个需求!要做出每一行(ID)对应数据组的折线图,我们可以用ggplot2包来实现,不过首先得把你的宽格式表格转成更适合绘图的长格式数据,下面一步步来:

1. 准备数据(模拟或导入你的数据)

先模拟一份和你表格结构一致的数据(如果是从Excel/CSV导入,用read_excel()或read.csv()就行):

# 模拟你的表格数据
df <- data.frame(
  ID = c("A", "B", "C", "D"),
  "2016" = c(10, 15, 8, 12),
  "2017" = c(12, 18, 9, 14),
  "2018" = c(15, 20, 11, 16),
  "2019" = c(14, 19, 10, 15),
  "2020" = c(16, 22, 12, 17)
)

2. 把宽格式转成长格式

你的表格是每列对应一个年份,我们需要把年份和数值合并成两列,用tidyr包的pivot_longer函数就能轻松搞定:

# 加载需要的包(如果没安装先运行 install.packages("tidyverse"))
library(tidyverse)

df_long <- df %>%
  pivot_longer(
    cols = -ID,  # 除了ID列之外的所有列都要转换
    names_to = "Year",  # 原列名(年份)存到Year列
    values_to = "Value"  # 原单元格数值存到Value列
  ) %>%
  mutate(Year = as.numeric(Year))  # 把Year转成数值型,确保x轴正确排序

3. 绘制分组折线图

现在用ggplot2来画图,让每个ID对应一条折线:

ggplot(df_long, aes(x = Year, y = Value, color = ID, group = ID)) +
  geom_line(linewidth = 1) +  # 绘制折线,设置线条粗细
  geom_point(size = 2) +      # 添加数据点,让数值位置更清晰
  labs(
    title = "各ID年度数值变化趋势",
    x = "年份",
    y = "数值",
    color = "ID"
  ) +
  theme_minimal() +  # 使用简洁清爽的主题
  theme(plot.title = element_text(hjust = 0.5))  # 让标题居中显示

额外小技巧

  • 如果想自定义折线颜色,可以加一行scale_color_manual(values = c("#FF0000", "#00FF00", "#0000FF", "#FFA500")),把颜色代码换成你喜欢的就行。
  • 如果年份是连续的时间序列,也可以把Year转成日期格式,比如mutate(Year = as.Date(paste(Year, "01", "01", sep = "-"))),这样x轴会更贴合时间轴的展示逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:11:27