## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 5 ) ## ----setup-------------------------------------------------------------------- library(controlcharts) ## ----data--------------------------------------------------------------------- set.seed(42) # SPC Data (Time Series) spc_data <- data.frame( date = seq(as.Date("2023-01-01"), by = "month", length.out = 12), value = c(10, 12, 11, 15, 12, 11, 25, 12, 11, 10, 11, 12), group = "A" ) spc_data$label_text <- paste0("Val: ", spc_data$value) # Funnel Data (Categorical) funnel_data <- data.frame( id = LETTERS[1:10], num = sample(10:50, 10), denom = sample(50:100, 10) ) ## ----title-------------------------------------------------------------------- spc( spc_data, keys = date, numerators = value, title = list( text = "Monthly Performance", font_size = "20px", font_family = "Courier New", font_weight = "bold" ) )$static_plot ## ----canvas_spc--------------------------------------------------------------- spc( spc_data, keys = date, numerators = value, canvas_settings = list( upper_padding = 50, lower_padding = 50 ) )$static_plot ## ----canvas_funnel------------------------------------------------------------ funnel( funnel_data, keys = id, numerators = num, denominators = denom, canvas_settings = list( left_padding = 50, right_padding = 50 ) )$static_plot ## ----xaxis_spc---------------------------------------------------------------- spc( spc_data, keys = date, numerators = value, x_axis_settings = list( xlimit_tick_rotation = -45, xlimit_label = "Month of Observation" ) )$static_plot ## ----xaxis_funnel------------------------------------------------------------- funnel( funnel_data, keys = id, numerators = num, denominators = denom, x_axis_settings = list( xlimit_label = "Population Size (Denominator)" ) )$static_plot ## ----yaxis-------------------------------------------------------------------- spc( spc_data, keys = date, numerators = value, y_axis_settings = list( ylimit_show = TRUE, # Ensure axis is shown limit_multiplier = 2 # Expand the auto-calculated limits ) )$static_plot ## ----dates-------------------------------------------------------------------- spc( spc_data, keys = date, numerators = value, date_settings = list( date_format_day = "DD", date_format_month = "Mon", # Abbreviated month date_format_year = "YY", date_format_delim = "-" ) )$static_plot ## ----lines_spc---------------------------------------------------------------- spc( spc_data, keys = date, numerators = value, line_settings = list( colour_main = "purple", width_main = 3, type_main = "2 5" # Dashed line pattern ) )$static_plot ## ----lines_funnel------------------------------------------------------------- funnel( funnel_data, keys = id, numerators = num, denominators = denom, line_settings = list( colour_95 = "orange", width_95 = 2, type_95 = "10 0", # Solid colour_99 = "red", width_99 = 3 ) )$static_plot ## ----scatter------------------------------------------------------------------ funnel( funnel_data, keys = id, numerators = num, denominators = denom, scatter_settings = list( shape = "Diamond", size = 8, colour = "orange", opacity = 0.8 ) )$static_plot ## ----scatter_text------------------------------------------------------------- funnel( funnel_data, keys = id, numerators = num, denominators = denom, scatter_settings = list( use_group_text = TRUE, # Enable text labels on points scatter_text_colour = "darkblue", scatter_text_size = 14, scatter_text_font = "Georgia" ) )$static_plot ## ----labels_spc--------------------------------------------------------------- spc( spc_data, keys = date, numerators = value, labels = label_text, # Using the custom column created earlier label_settings = list( show_labels = TRUE, label_position = "bottom", label_colour = "red", label_font = "Verdana", label_size = 10 ) )$static_plot ## ----labels_funnel------------------------------------------------------------ funnel( funnel_data, keys = id, numerators = num, denominators = denom, labels = id, # Show ID as label label_settings = list( show_labels = TRUE, label_colour = "blue", label_font = "Arial", label_size = 12 ) )$static_plot ## ----conditional_scatter_spc-------------------------------------------------- # Create a color vector matching the data logic point_colors <- ifelse(spc_data$value > 15, "red", "#E69F00") spc( spc_data, keys = date, numerators = value, scatter_settings = list( colour = point_colors, size = 5 ) )$static_plot ## ----conditional_scatter_funnel----------------------------------------------- # Logic: Highlight large denominators funnel_cols <- ifelse(funnel_data$denom > 80, "green", "gray") funnel( funnel_data, keys = id, numerators = num, denominators = denom, scatter_settings = list( colour = funnel_cols, size = 6, opacity = 1 ) )$static_plot ## ----conditional_lines-------------------------------------------------------- # Define colors for line segments # Note: The vector length corresponds to the points; segments connect points. line_colors <- rep("gray", nrow(spc_data)) line_colors[5:8] <- "orange" # Highlight a middle section spc( spc_data, keys = date, numerators = value, line_settings = list( colour_main = line_colors, width_main = 3 ) )$static_plot