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

如何用ggplot正确绘制人员年度数值时间序列折线图?

解决时间序列图绘制错误的问题

你的问题出在两个核心环节:

  • 数据重塑后未处理年份字段,且错误地将X轴设为人员名称
  • 绘图时的分组、颜色映射逻辑颠倒,没按人员来区分趋势线

修复步骤:

  1. 处理重塑数据,提取年份
    reshape2::melt生成的variable列是val_2015这类带前缀的字符串,需要去掉前缀并转为数值型,才能作为X轴的年份变量。

  2. 修正ggplot映射逻辑
    X轴使用处理后的年份,Y轴对应value,用name作为分组(group)和颜色区分(colour)的依据,这样每个人员的年度数值会被正确连接成独立趋势线。

完整代码:

# 生成可复现的数据集
set.seed(123)
my_data = data.frame(
  name = c("person1", "person2", "person3", "person4", "person5"),
  val_2015 = rnorm(5,10,1),
  val_2016 = rnorm(5,15,1),
  val_2017 = rnorm(5,15,1),
  val_2018 = rnorm(5,20,1),
  val_2019 = rnorm(5,20,1),
  val_2020 = rnorm(5,25,1)
)

# 重塑并清洗数据
library(reshape2)
library(ggplot2)

final = melt(my_data, id.var = "name")
# 提取年份并转为数值型
final$year = as.numeric(gsub("val_", "", final$variable))

# 绘制正确的时间序列图
ggplot(final, aes(x = year, y = value, colour = name, group = name)) +
  geom_point(size = 2) +
  geom_line(linewidth = 1) +
  labs(x = "年份", y = "数值", colour = "人员") +
  theme_minimal()

效果说明:

  • X轴按2015-2020的顺序显示年份
  • 每个人员对应一条独立颜色的趋势线,点线一一对应
  • 轴标签和图例清晰直观,符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 00:15:36