每周数据的 R 时间序列绘图

标签 r ggplot2 time-series forecasting

我有从 2015 年第 2 周到 2016 年第 9 周的每周数据,在拟合并绘制我的预测后,x 轴没有意义。我如何以月/周的形式分享 x 轴值#。谢谢

Current Forecast Plot

TS1<-ts(DUMMYDATA,frequency =52,start = c(2015,02),end = c(2016,09))

我尝试创建自己的 x 轴,但无法在时间分量方面正确反射(reflect)它

最佳答案

首先我生成了一些随机的可重现数据。您可以使用 as.Date 直接在 ts 中生成日期。之后,您需要将时间序列转换为日期格式。要显示带有月/周日期的轴,您可以将 scale_x_datedate_labels 一起使用,形成周和月。这是一个可重现的示例:

library(ggplot2)
# Generate random reproducible data
set.seed(1)
DUMMYDATA <- cumsum(rnorm(10000))
TS1<-ts(DUMMYDATA, frequency = 52, start = as.Date('2015-02-01'), end = as.Date('2016-09-01'))

# Convert to dataframe
data = data.frame(y=as.matrix(TS1), date=time(TS1))

# convert date to date format
data$date <- as.Date(as.numeric(time(data$date)), origin = "1970-01-01")

ggplot(data, aes(x = date, y = y)) +
  geom_line() +
  scale_x_date(date_labels = "%b-%W", 
               date_breaks = '1 week') +
  guides(x = guide_axis(angle = 90)) +
  theme_bw()

创建于 2022 年 11 月 27 日 reprex v2.0.2

如果您不想每周显示,可以将 date_breaks 更改为如下所示的月份:

library(ggplot2)
ggplot(data, aes(x = date, y = y)) +
  geom_line() +
  scale_x_date(date_labels = "%b-%W", 
               date_breaks = '1 month') +
  guides(x = guide_axis(angle = 90)) +
  theme_bw()

创建于 2022 年 11 月 27 日 reprex v2.0.2

关于每周数据的 R 时间序列绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74588319/

相关文章:

r - 加减法后的浮点小于等于比较

r - 如何缩短dput的长度

r - 是否可以修复 geom_text() 生成的锯齿状、质量差的文本?

r - 华夫饼包 : Colors mixed up with a Zero/0 in data

r - 从分布到置信区间的寓言

python - 如何使用 Pandas 在 Python 中获取多年平均值

r - 使用 R 查找数据的交集和差异

R 相当于方便的 dev.copy2pdf 但对于 dev.copy2svg?

r - 有轴,但直方图中没有框架(R :ggplot2)

r - 在0 :(b - 1) : numerical expression has 6 elements: only the first used中