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

在R中使用ggplot2绘制分区域分季度回归系数时序图

R语言ggplot2实现分区域系数时间序列子图绘制

依赖包准备

需要用到以下工具包,提前安装加载即可:

library(plyr)
library(dplyr)
library(ggplot2)

系数提取与数据整理

你提供的res列表中每个元素对应1个季度的回归结果,我们先遍历所有季度提取非截距项系数,整理为ggplot2适配的长表结构:

coef_df <- lapply(seq_along(res), function(quarter_idx) {
  # 提取单个季度的所有区域(示例中为物种)回归结果
  quarter_res <- res[[quarter_idx]]
  # 提取非截距项系数,示例中自变量为Sepal.Width,实际使用替换为你的自变量名即可
  area_coef <- sapply(quarter_res, function(lm_mod) {
    coef(lm_mod)[["Sepal.Width"]]
  })
  # 结构化输出
  data.frame(
    quarter = quarter_idx,
    area = names(area_coef),
    coef_value = area_coef
  )
}) %>% bind_rows()

提示:14个季度的场景下代码无需修改,seq_along会自动生成1-14的X轴季度编号。

分面子图绘制

使用ggplot2的分面功能,每个区域对应独立子图:

ggplot(coef_df, aes(x = factor(quarter), y = coef_value, group = 1)) +
  # 点+折线展示时间趋势,样式可按需调整
  geom_line(color = "#165DFF", linewidth = 1) +
  geom_point(color = "#FF7D00", size = 2.5) +
  # 按区域分面,scales = "free_y"可开启子图独立Y轴范围适配
  facet_wrap(~area, nrow = 2, scales = "free_y") +
  labs(
    x = "季度",
    y = "非截距项回归系数"
  ) +
  theme_bw()
  • 调整facet_wrap的nrow/ncol参数可以修改子图的行列排布
  • 若不需要独立Y轴,删除scales = "free_y"参数即可
  • 折线、点的颜色、大小都可以按需自定义修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:09:03