【发布时间】:2016-09-26 11:58:53
【问题描述】:
我正在使用闪亮的应用程序制作一些预测图表。但是,我有一个问题,该应用程序只显示一些图表。我目前正在为应用程序的服务器部分使用以下代码。
server <- function(input, output) {
output$graph <- renderPlot({
row.number <- which(grepl(input$n1, Data$Kontotal))
name <- Data [row.number, -(1:3)]
name <- t(name)
name <- ts(name, frequency=12, start=c(2007,1))
n.row <- nrow(name)
en<-max(time(name))
ds<-as.data.frame(window(name,end=en))
names(ds)<-'obs'
ds$date<-as.Date(time(window(name,end=en)))
p1a <- ggplot(data=ds,aes(x=date,y=obs))
p1a <- p1a+geom_line(col='red')
p1a <- p1a+scale_x_date(name='',breaks='1 year',minor_breaks='1 month',labels=date_format("%b-%y"),expand=c(0,0))
p1a <- p1a+scale_y_continuous(name='mio.kr')
p1a <- p1a + theme_bw() +
theme(panel.border = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.line = element_line(colour = "black")) })
output$graph2 <- renderPlot({
if (input$n3 == "HW") {
row.number <- which(grepl(input$n1, Data$Kontotal))
name <- Data [row.number, -(1:3)]
name <- t(name)
name <- ts(name, frequency=12, start=c(2007,1))
n.row <- nrow(name)
fit <- auto.arima (name)
fcast <- forecast(fit, input$n2)
### Plotting
data.pred <- forc.ggplot (name, fcast)
p1a <- ggplot(data=data.pred,aes(x=date,y=obs))
p1a <- p1a+geom_line(col='red')
p1a <- p1a+geom_line(aes(y=fitted),col='blue')
p1a <- p1a+geom_line(aes(y=forecast))+geom_ribbon(aes(ymin=lo95,ymax=hi95),alpha=.25)
p1a <- p1a+scale_x_date(name='',breaks='1 year',minor_breaks='1 month',labels=date_format("%b-%y"),expand=c(0,0))
p1a <- p1a+scale_y_continuous(name='mio.kr')
p1a <- p1a + theme_bw() +
theme(panel.border = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.line = element_line(colour = "black"))
p1a
}
if (input$n3 == "arima") {
row.number <- which(grepl(input$n1, Data$Kontotal))
name <- Data [row.number, -(1:3)]
name <- t(name)
name <- ts(name, frequency=12, start=c(2007,1))
n.row <- nrow(name)
fit <- auto.arima (name)
fcast <- forecast(fit, input$n2)
### Plotting
data.pred <- forc.ggplot (name, fcast)
p1a <- ggplot(data=data.pred,aes(x=date,y=obs))
p1a <- p1a+geom_line(col='red')
p1a <- p1a+geom_line(aes(y=fitted),col='blue')
p1a <- p1a+geom_line(aes(y=forecast))+geom_ribbon(aes(ymin=lo95,ymax=hi95),alpha=.25)
p1a <- p1a+scale_x_date(name='',breaks='1 year',minor_breaks='1 month',labels=date_format("%b-%y"),expand=c(0,0))
p1a <- p1a+scale_y_continuous(name='mio.kr')
p1a <- p1a + theme_bw() +
theme(panel.border = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.line = element_line(colour = "black"))
p1a
}
})
}
问题是只显示 ARIMA 图。 注意,但是,在这里发布的代码中,我在代码的硬件部分更改了模型,因此它与 ARIMA 部分(包括模型)相同,只是为了检查它是因为 ets 函数(我用来估计 HW 模型)出了点问题。
它只是在 HW 的情况下应该在图表的位置留下一个空白区域,但为 ARIMA 模型绘制了正确的图表。
有人试过类似的吗?
【问题讨论】:
-
请发帖
ui.r
标签: r forecasting shiny