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

ggplot绘制呼叫中心通话预测图时美学长度错误求助

解决ggplot绘制通话量预测图的美学匹配错误问题

问题概述

使用ggplot绘制15分钟间隔的呼叫中心通话量及预测结果时,出现美学长度不匹配错误:

Error in `check_aesthetics()`:
! Aesthetics must be either length 1 or the same as the data (8): x

错误原因

  1. 变量缺失:绘图时指定的x = micelby15并未存在于micelSeason和mi_training数据框中,仅单独定义了向量但未合并到数据内,导致augment(forecast_1, newdata = mi_training)返回的结果没有micelby15列,ggplot无法匹配x轴数据。
  2. 拼写错误:变量名michaelFifteen.summary、michaelby15存在拼写错误,正确应为micelFifteen.summary、micelby15。
  3. 日期格式错误:scale_x_datetime中使用%h(缩写月份),应改为%H(24小时制小时)以正确显示时间。

解决方案

  1. 修正变量拼写错误,将转换后的POSIXct时间列添加到micelSeason数据框中。
  2. 确保拆分后的训练集mi_training包含时间列,使得augment结果能继承该列用于绘图。
  3. 修正日期标签格式。

完整修正代码

library(readr)
library(ggplot2)
library(forecast)
library(fpp2)
library(TTR)
library(dplyr)
library(readxl)
library(lubridate)
library(rsample)
library(tidyverse)
library(broom)

# 数据处理部分
micelFifteen <- data.frame(micel[['STARTTIME']])
micelFifteen$by15 <- cut(micelFifteen$micel...STARTTIME..., breaks = "15 min")
micelFifteen['counts']  <-  1
micelFifteen.summary <- aggregate(counts ~ by15, FUN =sum, data=micelFifteen)

# 添加时间趋势、季节趋势,同时转换by15为POSIXct格式并命名为micelby15
micelSeason <- micelFifteen.summary %>% 
  mutate(
    time_trend = 1:n(),
    seasonal_trend = hour(by15),
    micelby15 = as.POSIXct(by15)  # 关键:将时间列整合进数据框
  )

# 拆分训练集和测试集
micelsplit <- initial_time_split(micelSeason, prop = 2/3)
mi_training <- training(micelsplit)
mi_testing <- testing(micelsplit)

# 训练线性模型
forecast_1 <- lm(counts ~ time_trend , data = mi_training)

# 绘图部分
ggplot(data = micelSeason, aes(x = micelby15, y = counts)) +
  geom_line() +
  # augment结果继承mi_training的所有列,包括micelby15,无需重复指定x轴
  geom_line(data = augment(forecast_1, newdata = mi_training), 
            aes(y = .fitted),
            color = "red") +
  labs(x = "Time", y = "Calls") +
  scale_x_datetime(date_breaks = "15 Min", date_labels = "%H-%M")

关键说明

  • 将micelby15直接合并到micelSeason中,确保训练集和augment结果都包含该列,从根源解决美学匹配问题。
  • 绘图时红色预测线可继承全局的x = micelby15设置,无需在aes中重复指定,简化代码同时避免错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:41:41