From 5cec062fced05dcba0e62e737a028a9f03ca355f Mon Sep 17 00:00:00 2001 From: Ben Letham Date: Wed, 1 Mar 2017 18:38:58 +0200 Subject: [PATCH] Fix weekly seasonality plot in non-en locales --- R/R/prophet.R | 7 +++---- python/fbprophet/forecaster.py | 3 +-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/R/R/prophet.R b/R/R/prophet.R index b2aded3..ad4bd5f 100644 --- a/R/R/prophet.R +++ b/R/R/prophet.R @@ -951,11 +951,10 @@ prophet_plot_components <- function(m, fcst, uncertainty = TRUE) { } # Plot weekly seasonality, if present if ("weekly" %in% colnames(df)) { + # Get weekday names in current locale + days <- weekdays(seq.Date(as.Date('2017-01-01'), by='d', length.out=7)) df.s <- df %>% - dplyr::mutate(dow = factor( - weekdays(ds), levels = c('Sunday', 'Monday', 'Tuesday', 'Wednesday', - 'Thursday', 'Friday', 'Saturday') - )) %>% + dplyr::mutate(dow = factor(weekdays(ds), levels = days)) %>% dplyr::group_by(dow) %>% dplyr::slice(1) %>% dplyr::ungroup() %>% diff --git a/python/fbprophet/forecaster.py b/python/fbprophet/forecaster.py index aad9880..d940bd7 100644 --- a/python/fbprophet/forecaster.py +++ b/python/fbprophet/forecaster.py @@ -695,8 +695,7 @@ class Prophet(object): df_s = fcst.copy() df_s['dow'] = df_s['ds'].dt.weekday_name df_s = df_s.groupby('dow').first() - days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'] + days = pd.date_range(start='2017-01-01', periods=7).weekday_name y_weekly = [df_s.loc[d]['weekly'] for d in days] y_weekly_l = [df_s.loc[d]['weekly_lower'] for d in days] y_weekly_u = [df_s.loc[d]['weekly_upper'] for d in days]