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

使用R+ggplot2按df2类型分组绘制df1同类型列时间序列图实现方法

实现代码

你可以基于原有代码,先把列和类型的映射关联到长表数据中,再按类型循环绘图即可,完整代码如下:

library(ggplot2)
library(data.table)
library(reshape2)

# 原有数据预处理步骤
df1$date <- as.Date(df1$date)
df1.m <- melt(df1, id = "date")  # 转为长表格式

# 关联df2的类型映射,先转字符避免因子匹配异常
df2$columns <- as.character(df2$columns)
df2$type <- as.character(df2$type)
df1.m <- merge(df1.m, df2, by.x = "variable", by.y = "columns", all.x = TRUE)

# 按type分组循环绘图保存
for (current_type in unique(df1.m$type)) {
  # 筛选当前类型对应的所有数据
  sub_data <- df1.m[df1.m$type == current_type, ]
  # 绘制折线图
  plot_obj <- ggplot(data = sub_data,
                     aes(x = date, y = value, colour = variable)) +
              geom_line(size = 1, alpha = 1)
  # 按类型名称保存图片,width和height可按需调整
  ggsave(paste0(current_type, ".png"), plot = plot_obj, width = 8, height = 5)
}

逻辑说明

  • 先通过merge函数把df2中定义的列-类型对应关系,匹配到df1的长表中,给每个指标列打上type标签
  • 遍历所有唯一的type值,每次仅筛选对应类型的数据绘图,保存文件名直接用type名拼接.png,运行后就会自动生成price.png、quantity.png、pct_change.png三张图片

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:24:02