Function to plot results

compute_bin_midpoint <- function(x) {
  x |>
    as.character() |>
    str_split_1(",") |>
    map_dbl(parse_number) |>
    mean()
}

bin_plot <- function(S, LA_breaks, LS_breaks, label) {
  S |> 
    mutate(
      la = map_dbl(LA, compute_bin_midpoint),
      ls = map_dbl(LS, compute_bin_midpoint)
    ) |>
    ggplot(aes(x = la, y = ls)) + 
    geom_text(aes(label = {{label}}), size = 8) +
    geom_vline(
      xintercept = LA_breaks,
      color = "blue"
    ) +
    geom_hline(
      yintercept = LS_breaks,
      color = "blue"
    ) +
    theme(text = element_text(size = 18)) +
    labs(x = "Launch Angle", y = "Launch Speed") 
}