mirror of
https://github.com/saymrwulf/prophet.git
synced 2026-07-29 20:14:08 +00:00
Merge pull request #273 from hoxo-m/plot-changepoints
Add function to draw significant changepoints
This commit is contained in:
commit
3ce2070369
1 changed files with 32 additions and 0 deletions
32
utils
Normal file
32
utils
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#' 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 layer.
|
||||
#'
|
||||
#' @import ggplot2
|
||||
#'
|
||||
#' @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 <- geom_line(aes_string("ds", "trend"), color = cp_color, ...)
|
||||
layers <- append(layers, trend_layer)
|
||||
}
|
||||
signif_changepoints <- m$changepoints[abs(m$params$delta) >= threshold]
|
||||
cp_layer <- geom_vline(xintercept = as.integer(signif_changepoints),
|
||||
color = cp_color, linetype = cp_linetype, ...)
|
||||
layers <- append(layers, cp_layer)
|
||||
layers
|
||||
}
|
||||
Loading…
Reference in a new issue