复现某个特定情节

编程语言 2026-07-10

我有这段代码,可以生成一个很漂亮的图。

    library(forecast)
    fit <- auto.arima(WWWusage)
    fc <- forecast(fit, h=20, level=95)
    qf <- matrix(0, nrow=99, ncol=20)
    m <- fc$mean
    s <- (fc$upper-fc$lower)/1.96/2
    for(h in 1:20)
      qf[,h] <- qnorm((1:99)/100, m[h], s[h])

    plot(fc)
    matlines(101:120, t(qf), col=rainbow(120), lty=1)

现在,我想用下面这段代码来创建这张图。它会计算另一组数据的分位数,但我不确定如何生成上面的图。

library(fpp3)
library(distributional)

fc <- aus_production |>
  model(ARIMA(Beer)) |>
  forecast(h = 20)

pc <- seq(99)
fc |>
  as_tibble() |>
  group_by(Quarter) |>
  reframe(percentile = quantile(Beer, pc / 100)) |>
  unnest(percentile) |>
  mutate(pc = rep(pc, 20))

解决方案

也许可以这样做?

library(ggplot2)
... |>
ggplot(aes(Quarter)) +
geom_line(aes(y = percentile, color = factor(pc))) +
geom_line(data = aus_production |>
            tsibble::filter_index("2005-01" ~ .), # for clearer demo output
          aes(y = Beer)) +
guides(color = "none")

enter image description here

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章