Intro Thoughts

Status Quo

library(tidyverse)

Experiment

library(ozmaps)
sf_oz <- ozmap("states")

crs_au_states <- sf::st_crs(sf_oz)

sf_oz |> names()
## [1] "NAME"     "geometry"
sf_oz |>
  select(state_name = NAME) %>% 
    ggplot2::StatSf$compute_panel(coord = ggplot2::CoordSf) |>
    ggplot2::StatSfCoordinates$compute_group(coord = ggplot2::CoordSf) ->
australia_state_ref
## Warning in st_point_on_surface.sfc(sf::st_zm(x)): st_point_on_surface may not
## give correct results for longitude/latitude data
# layer_county w/ inner join
compute_panel_australia_states <- function(data, scales){

australia_state_ref  |>
    inner_join(data)

}

StatAuStates <- ggproto("StatAuStates",
                        Stat,
                        compute_panel = compute_panel_australia_states,
                        default_aes = aes(label = after_stat(state_name)),
                        required_aes = c("state_name"))


tribble(~state, ~pop,
        "Victoria", 1,
        "Queensland", 2,
        "New South Wales", 3,
        "Western Australia", 4,
        "Northern Territory", 5,
        "Tasmania", 6,
        "South Australia", 7,
        "Australian Capital Territory", 8,
        "Other Territories", 9
        ) |>
ggplot() +
  aes(state_name = state) + 
  geom_sf(stat = StatAuStates) + 
  aes(fill = pop) + 
  geom_sf_text(color = "white", 
               stat = StatAuStates,
               check_overlap = T) + 
  scale_fill_viridis_c() + 
  theme(panel.background = element_rect(fill = "blue")) + 
  coord_sf(crs = crs_au_states)
## Warning in layer_sf(data = data, mapping = mapping, stat = stat, geom =
## GeomText, : Ignoring unknown parameters: `fun.geometry`
## Joining with `by = join_by(state_name)`
## Joining with `by = join_by(state_name)`

Closing remarks, Other Relevant Work, Caveats