| 12345678910111213141516171819202122232425262728293031323334 |
- #' Get layers to overlay significant changepoints on prophet forecast plot.
- #'
- #' @param m Prophet model object.
- #' @param threshold Numeric, changepoints where abs(delta) >= threshold are
- #' significant. (Default 0.01)
- #' @param cp_color Character, line color. (Default "red")
- #' @param cp_linetype Character or integer, line type. (Default "dashed")
- #' @param trend Logical, if FALSE, do not draw trend line. (Default TRUE)
- #' @param ... Other arguments passed on to layers.
- #'
- #' @return A list of ggplot2 layers.
- #'
- #' @examples
- #' \dontrun{
- #' plot(m, fcst) + layer_changepoints(m)
- #' }
- #'
- #' @export
- layer_changepoints <- function(m, threshold = 0.01, cp_color = "red",
- cp_linetype = "dashed", trend = TRUE, ...) {
- layers <- list()
- if (trend) {
- trend_layer <- ggplot2::geom_line(
- ggplot2::aes_string("ds", "trend"), color = cp_color, ...)
- layers <- append(layers, trend_layer)
- }
- signif_changepoints <- m$changepoints[abs(m$params$delta) >= threshold]
- cp_layer <- ggplot2::geom_vline(
- xintercept = as.integer(signif_changepoints), color = cp_color,
- linetype = cp_linetype, ...)
- layers <- append(layers, cp_layer)
- return(layers)
- }
|