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

能否用ggplot2绘制多模型分时段FEVD分组并排柱状图?

用ggplot2实现按时间点分组的FEVD并排柱状图

当然可以用ggplot2轻松实现你想要的效果!下面我会结合模拟数据和代码,一步步教你怎么做:

1. 先整理你的数据结构

首先确保你的数据集包含以下关键列:

  • Horizon: 时间点(比如1到16的数值或因子)
  • Model: 模型名称(比如"模型1"、"模型2"、"模型3",最好设置为因子类型,保证绘图时顺序正确)
  • FEVD: 预测误差方差分解的占比数值(比如0、5、3这类百分比数值)

这里我先模拟一份符合你需求的样本数据:

library(tidyverse)

# 模拟样本数据
set.seed(123) # 保证结果可重复
fevd_data <- expand.grid(Horizon = 1:16, Model = paste0("模型", 1:3)) %>%
  mutate(FEVD = sample(c(0,3,5,8,10), nrow(.), replace = TRUE))

2. 绘制核心图表

这里提供两种常见的实现方式,你可以根据需求选择:

方式一:每个时间点作为独立分面,内部展示3个模型的并排柱子

这种方式每个时间点单独成一块,视觉上分组更清晰:

ggplot(fevd_data, aes(x = Model, y = FEVD, fill = Model)) +
  geom_col(width = 0.7, show.legend = FALSE) + # 绘制柱状图,隐藏重复图例
  facet_wrap(~Horizon, nrow = 4) + # 按时间点分面,设置行数为4(可按需调整)
  labs(
    title = "各时间点下不同模型的FEVD占比",
    x = "模型",
    y = "FEVD占比(%)"
  ) +
  theme_minimal() +
  theme(
    strip.text = element_text(size = 10, face = "bold"), # 分面标题样式
    plot.title = element_text(hjust = 0.5, size = 14, face = "bold") # 标题居中加粗
  ) +
  scale_fill_brewer(palette = "Set2") # 设置柱子颜色

方式二:同一坐标轴下,每个时间点对应3个并排柱子

这种方式适合对比不同时间点之间的模型表现:

ggplot(fevd_data, aes(x = factor(Horizon), y = FEVD, fill = Model)) +
  geom_col(position = position_dodge(width = 0.8), width = 0.7) + # 并排柱子设置
  labs(
    title = "各时间点下不同模型的FEVD占比",
    x = "时间点(Horizon)",
    y = "FEVD占比(%)",
    fill = "模型"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, size = 14, face = "bold"),
    axis.text.x = element_text(angle = 45, hjust = 1) # x轴标签倾斜,避免重叠
  ) +
  scale_fill_brewer(palette = "Set2")

3. 自定义调整细节

如果你需要更个性化的效果,可以做这些调整:

  • 如果你的FEVD是小数(比如0.05代表5%),可以用scale_y_continuous(labels = scales::percent)将y轴转为百分比显示
  • 可以用geom_text()在柱子上方添加数值标签,比如:
    geom_text(aes(label = paste0(FEVD, "%")), 
              position = position_dodge(width = 0.8), 
              vjust = -0.5, size = 3)
    
  • 调整分面的排列方式:用facet_grid()替代facet_wrap(),比如facet_grid(.~Horizon)可以让所有时间点横向排列

内容的提问来源于stack exchange,提问作者André Cordeiro Valério

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:11:55