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)`
