1+ import pins
2+
3+ # def vetiver_compute_metrics(data,
4+ # date_var,
5+ # .period,
6+ # truth, estimate, **kw,
7+ # metric_set = yardstick::metrics,
8+ # .every = 1L,
9+ # .origin = NULL,
10+ # .before = 0L,
11+ # .after = 0L,
12+ # .complete = FALSE):
13+
14+ # rlang::check_installed("slider")
15+ # metrics_dots = list2(...)
16+ # date_var = enquo(date_var)
17+ # slider::slide_period_dfr(
18+ # data,
19+ # .i = data[[quo_name(date_var)]],
20+ # .period = .period,
21+ # .f = ~ tibble::tibble(
22+ # !!date_var := min(.x[[quo_name(date_var)]]),
23+ # n = nrow(.x),
24+ # metric_set(.x, {{truth}}, {{estimate}}, !!!metrics_dots)
25+ # ),
26+ # .every = .every,
27+ # .origin = .origin,
28+ # .before = .before,
29+ # .after = .after,
30+ # .complete = .complete
31+ # )
32+
33+
34+ def vetiver_create_pin_metrics (df_metrics ,
35+ date_var ,
36+ board ,
37+ metrics_pin_name ):
38+
39+ date_var < - quo_name (enquo (date_var ))
40+
41+ new_metrics = df_metrics .sort ()
42+
43+ pins .pin_write (board , new_metrics , metrics_pin_name )
44+
45+
46+ def vetiver_update_pin_metrics (df_metrics ,
47+ date_var ,
48+ board ,
49+ metrics_pin_name ):
50+
51+ new_dates = df_metrics [date_var ].unique ()
52+ old_metrics = pins .pin_read (board , metrics_pin_name )
53+ old_metrics = vec_slice (
54+ old_metrics ,
55+ old_metrics [date_var ] not in new_dates
56+ )
57+ new_metrics < - vec_sort (vctrs ::vec_rbind (old_metrics , df_metrics ))
58+
59+ pins .pin_write (board , new_metrics , metrics_pin_name )
60+
61+ return new_metrics
62+
63+ def vetiver_plot_metrics (df_metrics ,
64+ date_var ,
65+ estimate = estimate ,
66+ metric = metric ,
67+ n = n ):
68+
69+
70+ plt .plot (x = df_metrics , y = date_var , marker = "." )
71+
72+ ggplot2 ::ggplot (data = df_metrics ,
73+ ggplot2 ::aes ({{ date_var }}, {{.estimate }})) +
74+ # ggplot2::geom_line(ggplot2::aes(color = !!.metric), alpha = 0.7) +
75+ # ggplot2::geom_point(ggplot2::aes(color = !!.metric,
76+ # size = {{n}}),
77+ # alpha = 0.9) +
78+ ggplot2 ::facet_wrap (ggplot2 ::vars (!!.metric ),
79+ scales = "free_y" , ncol = 1 ) +
80+ ggplot2 ::guides (color = "none" ) +
81+ ggplot2 : :labs (x = NULL , y = NULL )
0 commit comments