Метод plot
для prophet
объектов использует ggplot2
, поэтому базовые графические функции R, такие как lines()
, не будут работать.Вы можете использовать от ggplot2::geom_line()
до добавления линий, но на данный момент я не вижу простого способа заменить точек линиями ...
Примерс ?prophet
:
history <- data.frame(ds = seq(as.Date('2015-01-01'), as.Date('2016-01-01'), by = 'd'),
y = sin(1:366/200) + rnorm(366)/10)
m <- prophet(history)
future <- make_future_dataframe(m, periods = 365)
forecast <- predict(m, future)
pp <- plot(m,forecast)
Добавить строки:
library(ggplot2)
pp + geom_line()
Этот вопрос предоставляет (хакерский) путь вперед:
pp2 <- pp + geom_line()
qq2 <- ggplot_build(pp2)
qq2$data[[2]]$colour <- NA
plot(ggplot_gtable(qq2))
Но, очевидно, что-то пошло не так с хаком.Лучше было бы взглянуть на метод сюжета (prophet:::plot.prophet
) и изменить его так, чтобы он вел себя так, как вам хочется ... Вот простая версия:
df <- prophet:::df_for_plotting(m, forecast)
gg <-ggplot(df, aes(x = ds, y = y)) + labs(x = "ds", y = "y")
gg <- gg + geom_ribbon(ggplot2::aes(ymin = yhat_lower,
ymax = yhat_upper), alpha = 0.2, fill = "#0072B2",
na.rm = TRUE)
## replace first geom_point() with geom_line() in next line ...
gg <- gg + geom_line(na.rm = TRUE) + geom_line(aes(y = yhat),
color = "#0072B2", na.rm = TRUE) + theme(aspect.ratio = 3/5)
Возможно, я вычеркнул некоторые из них.компоненты, которые существуют в ваших данных / прогнозе, хотя ...