将预测包中的分面图复制为 ggplot2 对象

问题描述 投票:0回答:1

当我使用预测包运行此订单时,当前会生成以下方面图。

library(fabletools)
library(forecast)

Test_plt<-fdeaths %>% 
  forecast()

checkresiduals(Test_plt)

enter image description here

虽然 Forecast 可以与 ggplot2 配合使用,但它生成的内容不能作为对象再次调用。例如,如果我单击“Test_plt”,我将只能看到模型中进行的测试结果,而看不到图表本身。

plot1<-checkresiduals(Test_plt)

 > plot1

    Ljung-Box test

data:  Residuals from ETS(M,N,M)
Q* = 11.592, df = 14, p-value = 0.639

任何人都可以将此图复制为 ggplot2 对象以便稍后调用吗?

r ggplot2 forecast
1个回答
0
投票

我没有看到任何简单的选项来返回所有绘图并将它们存储在变量或列表中以供进一步操作。但在查看了

ggtsdisplay
的来源(由
ckeckresiduals
在引擎盖下调用)之后,您可以像这样重新创建三个子图:

library(fabletools)
library(forecast)
library(ggplot2)

Test_plt <- fdeaths |>
  forecast()

checkresiduals(Test_plt)

tsplot <- autoplot(Test_plt$residuals) +
  geom_point(size = 0.5) +
  labs(y = NULL)

acfplot <- ggAcf(Test_plt$residuals, lag.max = 24) +
  labs(title = NULL)

histplot <- gghistogram(Test_plt$residuals, add.normal = TRUE, add.rug = TRUE) + 
  labs(x = "residuals")

library(patchwork)

tsplot / (acfplot + histplot)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.