EpiCurves: epicurves in ggplot with ggsurveillance
Source:vignettes/Epicurves_with_ggsurveillance.Rmd
Epicurves_with_ggsurveillance.Rmd
Epi Curve examples
This vignette is still work in progress. But the examples are hopefully already helpful and inspiring.
Ebola Outbreak in Kikwit, Democratic Republic of the Congo 1995
ggplot(outbreaks::ebola_kikwit_1995, aes(x = date, weight = onset)) +
geom_epicurve(date_resolution = "week") +
scale_x_date(date_breaks = "2 weeks", date_labels = "%V'%g", name = "week") +
scale_y_cases_5er() +
theme_bw()
SARS Outbreak in Canada 2003
outbreaks::sars_canada_2003 |>
pivot_longer(starts_with("cases"), names_prefix = "cases_", names_to = "origin") |>
ggplot(aes(x = date, weight = value, fill = origin)) +
geom_epicurve(date_resolution = "week") +
scale_y_cases_5er() +
theme_bw()
Influenza Data from Germany 2020-2025
-
align_dates_seasonal()
defines the influenza seasons -
geom_vline_year()
marks the turn of the years -
scale_y_cases_5er()
creates a y-axis with more ticks and aligns 0 with the x-axis.
influenza_germany |>
# Keep Age Groups 00-14, 15-59, 60+
filter(AgeGroup != "00+") |>
# Calc Influenza Seasons
align_dates_seasonal(dates_from = ReportingWeek) |>
ggplot(aes(x = ReportingWeek, weight = Cases, fill = season)) + # , weight = Cases
geom_vline_year(color = "grey50") +
geom_epicurve(color = NA, stat = "bin_date", date_resolution = "week") +
scale_y_cases_5er() +
theme_bw()
## Extra
influenza_germany |>
# Calc Influenza Seasons
align_dates_seasonal(dates_from = ReportingWeek) |>
ggplot(aes(x = ReportingWeek, weight = Cases, color = AgeGroup)) + # , weight = Cases
geom_line(stat = "bin_date", date_resolution = "month") +
scale_y_cases_5er() +
facet_wrap(~AgeGroup) +
theme_bw()