library(tidyverse)
library(cowplot); 
library(scales)
library(lubridate)
library(plotly)

theme_set(theme_classic(base_size = 12) + 
              background_grid(minor = "none", major = "none") +
              theme(legend.position = "none"))

d <- read_csv("https://docs.google.com/spreadsheets/d/1xgDhtejTtcyy6EN5dbDp5W3TeJhKFRRgm6Xk0s0YFeA/export?format=csv&gid=1788393542") %>%
    rename(new_deaths = "Dauðsföll", new_cases = Ny_Smit, total_cases = Smit_Samtals, total_deaths = Dauðsföll_Samtals) %>% 
    mutate(date = ymd(Dagsetning),
           country = "Iceland") %>% 
    select(country, date, total_cases, new_cases, new_deaths, total_deaths,
           innanlands = Innanlands_Smit)

Samtals Smit

p <- tibble(
    date = seq.Date(from = ymd("2020-02-20"), to = ymd("2020-02-26"), by = "day"),
    new_cases = 0,
    total_cases = 0, 
    new_deaths = 0,
    total_deaths = 0,
    country = "Iceland"
) %>% 
    bind_rows(d) %>% 
    mutate(rolling_new_cases = data.table::frollmean(new_cases, n = 7, align = "right")) %>% 
    expand_grid(
        tibble(
            wave = c("1", "2"),
            start = ymd(c("2020-02-27", "2020-07-23")),
            stop = ymd(c("2020-05-04", "2022-01-01"))
        )
    ) %>% 
    filter(date >= start, date <= stop) %>% 
    group_by(wave) %>% 
    mutate(total_cases = total_cases - min(total_cases)) %>% 
    mutate(days = row_number()) %>% 
    filter(days < 60) %>% 
    pivot_longer(c(new_cases, total_cases, rolling_new_cases)) %>% 
    mutate(name = fct_recode(name,
                             "Dagleg smit" = "new_cases",
                             "Uppsöfnuð smit" = "total_cases",
                             "Vikulegt meðaltal" = "rolling_new_cases")) %>% 
    ggplot(aes(days, value, col = wave, group = wave,
               text = str_c("Bylgja: ", wave, "<br>",
                            "Dagur: ", days, "<br>",
                            "Breyta: ", name, "<br>",
                            "Gildi: ", round(value, 1)))) +
    geom_line() +
    facet_wrap("name", scales = "free") +
    scale_colour_brewer(type = "qual", palette = "Set1") +
    scale_y_continuous(expand = expansion(mult = 0.01)) +
    labs(colour = "Bylgja",
         x = "\n\n\n\nDagar frá upphafi bylgju") +
    theme(
        # legend.position = c(0.04, 0.89), 
        legend.position = "top",
        axis.title.y = element_blank(), 
        axis.title.x = element_text(size = 9),
        axis.text = element_text(size = 8), 
        legend.text = element_text(size = 9),
        legend.title = element_text(size = 11), 
        plot.margin = margin(50, 5, 5, 5)
    )


ggplotly(p, tooltip = "text") %>% 
    layout(title = list(text = str_c("Samanburður á bylgjum á Íslandi (Samtals smit)",
                                     "<br>",
                                     "<sub>",
                                     "Miðað við að fyrsta bylgja hófst 27. febrúar og önnur 23. júlí",
                                     "</sub>",
                                     "<br>")))

Innanlands Smit

p <- tibble(
    date = seq.Date(from = ymd("2020-02-20"), to = ymd("2020-02-26"), by = "day"),
    new_cases = 0
) %>% 
    bind_rows(d %>% select(date, new_cases = innanlands)) %>% 
    mutate(total_cases = cumsum(new_cases),
           rolling_new_cases = data.table::frollmean(new_cases, n = 7, align = "right")) %>% 
    expand_grid(
        tibble(
            wave = c("1", "2"),
            start = ymd(c("2020-03-04", "2020-07-23")),
            stop = ymd(c("2020-05-04", "2022-01-01"))
        )
    ) %>% 
    filter(date >= start, date <= stop) %>% 
    group_by(wave) %>% 
    mutate(total_cases = total_cases - min(total_cases)) %>% 
    mutate(days = row_number()) %>% 
    filter(days < 60) %>% 
    pivot_longer(c(new_cases, total_cases, rolling_new_cases)) %>% 
    mutate(name = fct_recode(name,
                             "Dagleg smit" = "new_cases",
                             "Uppsöfnuð smit" = "total_cases",
                             "Vikulegt meðaltal" = "rolling_new_cases")) %>% 
    ggplot(aes(days, value, col = wave, group = wave,
               text = str_c("Bylgja: ", wave, "<br>",
                            "Dagur: ", days, "<br>",
                            "Breyta: ", name, "<br>",
                            "Gildi: ", round(value, 1)))) +
    geom_line() +
    facet_wrap("name", scales = "free") +
    scale_colour_brewer(type = "qual", palette = "Set1") +
    scale_y_continuous(expand = expansion(mult = 0.01)) +
    labs(colour = "Bylgja",
         x = "\n\n\n\nDagar frá upphafi bylgju") +
    theme(
        # legend.position = c(0.04, 0.89), 
        legend.position = "top",
        axis.title.y = element_blank(), 
        axis.title.x = element_text(size = 9),
        axis.text = element_text(size = 8), 
        legend.text = element_text(size = 9),
        legend.title = element_text(size = 11), 
        plot.margin = margin(50, 5, 5, 5)
    )
ggplotly(p, tooltip = "text") %>% 
    layout(title = list(text = str_c("Samanburður á bylgjum á Íslandi (Innanlands smit)",
                                     "<br>",
                                     "<sub>",
                                     "Miðað við að fyrsta bylgja hófst 4. mars og önnur 23. júlí",
                                     "</sub>",
                                     "<br>")))