## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(
echo = TRUE,
eval = TRUE,
fig.width = 8,
fig.height = 6,
warning = FALSE,
message = FALSE
)
## ----load-libraries, eval=TRUE, echo=TRUE-------------------------------------
library(epiviz)
library(dplyr)
library(lubridate)
## ----basic-epi-curve, fig.cap="Monthly epi curve with a three-month rolling average.", fig.alt="Column chart showing monthly laboratory detections with an overlaid three-month rolling average line."----
epi_curve(
dynamic = FALSE, # Create static ggplot chart
params = list(
df = epiviz::lab_data,
date_var = "specimen_date", # Date variable in the dataset
date_start = "2020-01-01", # Start date for the curve
date_end = "2023-12-31", # End date for the curve
time_period = "year_month", # Monthly aggregation
fill_colours = "#007C91", # Color for bars
# Rolling average parameters
rolling_average_line = TRUE, # Include rolling average line
rolling_average_line_lookback = 3, # 3-month rolling average
rolling_average_line_legend_label = "3-month rolling average", # Legend label
chart_title = "Laboratory Detections per Month",
x_axis_title = "Year - Month",
y_axis_title = "Number of detections",
x_axis_label_angle = -90
)
)
## ----grouped-epi-curve, fig.cap="Stacked weekly epi curve by organism species with seven-week rolling average.", fig.alt="Stacked column chart showing weekly laboratory detections by organism species, with an overlaid seven-week rolling average line."----
# Define custom week breaks for better x-axis display
week_seq <- seq(as.Date("2021-01-01"), as.Date("2022-05-31"), by = '2 week')
week_breaks <- paste0(lubridate::isoyear(week_seq), '-W', lubridate::isoweek(week_seq))
epi_curve(
dynamic = FALSE, # Create static ggplot chart
params = list(
df = epiviz::lab_data,
date_var = "specimen_date",
date_start = "2021-01-01",
date_end = "2022-05-31",
time_period = "iso_year_week", # Weekly aggregation using ISO weeks
group_var = "organism_species_name", # Group by organism type
group_var_barmode = "stack", # Stack bars to show total and composition
fill_colours = c("KLEBSIELLA PNEUMONIAE" = "#007C91",
"STAPHYLOCOCCUS AUREUS" = "#8A1B61",
"PSEUDOMONAS AERUGINOSA" = "#FF7F32"), # Named color mapping
rolling_average_line = TRUE,
rolling_average_line_legend_label = "7-week rolling average",
chart_title = "Laboratory detections by species \n 2021-01 - 2022-05",
chart_footer = "This chart has been created using simulated data.",
x_axis_title = "Year - ISO Week",
y_axis_title = "Number of detections",
x_axis_label_angle = -90,
x_axis_break_labels = week_breaks, # Custom week labels
y_axis_break_labels = seq(0, 250, 20), # Custom y-axis breaks
chart_title_colour = "#007C91",
chart_footer_colour = "#007C91"
)
)
## ----detailed-daily-epi-curve, fig.cap="Daily epi curve with stacked bars, case boxes, cumulative line, and threshold indicator.", fig.alt="Stacked daily column chart between June and July 2021 showing laboratory detections by species, annotated with case boxes, a seven-day rolling average line, and a cumulative total line."----
epi_curve(
dynamic = FALSE, # Create static ggplot chart
params = list(
df = epiviz::lab_data,
date_var = "specimen_date",
date_start = "2021-06-01",
date_end = "2021-07-31",
time_period = "day", # Daily aggregation for detailed analysis
group_var = "organism_species_name",
group_var_barmode = "stack",
fill_colours = c("#007C91", "#8A1B61", "#FF7F32"),
# Advanced features
case_boxes = TRUE, # Enable case boxes
rolling_average_line = TRUE,
rolling_average_line_legend_label = "7-day rolling average",
cumulative_sum_line = TRUE, # Add cumulative line
# Threshold line
hline = c(35), # Threshold value
hline_label = "Threshold",
hline_width = 0.5,
hline_colour = "orange",
hline_label_colour = "orange",
hline_type = "dotdash",
# Styling
chart_title = "Laboratory detections by species \n June - July 2021",
chart_title_colour = "#007C91",
legend_title = "Detected organisms",
legend_pos = "right",
y_limit_max = 40, # Set y-axis maximum
x_axis_break_labels = as.character(seq(as.Date("2021-06-01"),
as.Date("2021-07-31"),
by = '2 days')), # Every 2 days
y_axis_break_labels = seq(0, 40, 5), # Every 5 units
x_axis_title = "Date",
y_axis_title = "Number of detections",
x_axis_label_angle = -90,
y_axis_label_angle = 90
)
)
## ----prepare-pre-aggregated-data, eval=TRUE, echo=TRUE------------------------
# Create pre-aggregated data by date
pre_agg_data <- epiviz::lab_data %>%
group_by(specimen_date) %>%
summarise(detections = n()) %>%
ungroup()
## ----pre-aggregated-epi-curve, fig.cap="Weekly epi curve from pre-aggregated counts with rolling average and cumulative total.", fig.alt="Column chart summarising weekly detections from pre-aggregated data with an overlaid three-week rolling average line and an orange cumulative total line."----
epi_curve(
dynamic = FALSE, # Create static ggplot chart
params = list(
df = pre_agg_data,
y = "detections", # Specify the count column
date_var = "specimen_date",
date_start = "2021-10-01",
date_end = "2022-03-31",
time_period = "iso_year_week", # Weekly aggregation
# Rolling and cumulative lines
rolling_average_line = TRUE,
rolling_average_line_lookback = 3,
rolling_average_line_legend_label = "3-week rolling average",
rolling_average_line_colour = "#007C91",
rolling_average_line_width = 1.5,
cumulative_sum_line = TRUE, # Add cumulative line
cumulative_sum_line_colour = "orange",
chart_title = "Laboratory Detections by Region \nWinter 2021-22",
chart_title_colour = "#007C91",
legend_pos = "right",
y_axis_break_labels = seq(0, 300, 50),
x_axis_title = "ISO Week",
y_axis_title = "Number of detections",
x_axis_label_angle = -90,
hover_labels = "Week: %{x}
Count: %{y}" # Custom hover text
)
)
## ----interactive-epi-curve, fig.cap="Interactive stacked epi curve with weekly aggregation and rolling average.", fig.alt="Interactive stacked bar chart of weekly laboratory detections by organism species, including a seven-week rolling average line."----
epi_curve(
dynamic = TRUE, # Create interactive plotly chart
params = list(
df = epiviz::lab_data,
date_var = "specimen_date",
date_start = "2021-01-01",
date_end = "2022-05-31",
time_period = "iso_year_week",
group_var = "organism_species_name",
group_var_barmode = "stack",
fill_colours = c("KLEBSIELLA PNEUMONIAE" = "#007C91",
"STAPHYLOCOCCUS AUREUS" = "#8A1B61",
"PSEUDOMONAS AERUGINOSA" = "#FF7F32"),
rolling_average_line = TRUE,
rolling_average_line_legend_label = "7-week rolling average",
chart_title = "Laboratory detections by species \n 2021-01 - 2022-05",
chart_footer = "This chart has been created using simulated data.",
x_axis_title = "Year - ISO Week",
y_axis_title = "Number of detections",
x_axis_label_angle = -90,
x_axis_break_labels = week_breaks,
y_axis_break_labels = seq(0, 250, 20),
chart_title_colour = "#007C91",
chart_footer_colour = "#007C91"
)
)