## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 5 ) ## ----setup-------------------------------------------------------------------- library(sf) library(explodemap) ## ----synthetic-data----------------------------------------------------------- sq <- function(xmin, ymin, size = 1000) { st_polygon(list(matrix( c(xmin, ymin, xmin + size, ymin, xmin + size, ymin + size, xmin, ymin + size, xmin, ymin), ncol = 2, byrow = TRUE ))) } geom <- st_sfc( sq(0, 0), sq(3000, 0), # Region A sq(12000, 0), sq(15000, 0), # Region B crs = 3857 ) x <- st_sf( id = c("a1", "a2", "b1", "b2"), region = c("A", "A", "B", "B"), geometry = geom ) x ## ----explode-basic------------------------------------------------------------ result <- explode_sf(x, region_col = "region", plot = FALSE) ## ----explode-quiet------------------------------------------------------------ quiet_result <- explode_sf(x, region_col = "region", plot = FALSE, quiet = TRUE) class(quiet_result) ## ----class-check-------------------------------------------------------------- class(result) names(result) ## ----print-------------------------------------------------------------------- print(result) ## ----summary------------------------------------------------------------------ summary(result) ## ----plot-exploded------------------------------------------------------------ plot(result) ## ----plot-both, fig.width = 10------------------------------------------------ plot(result, "both") ## ----calibration-------------------------------------------------------------- calibration_row(result) ## ----manual------------------------------------------------------------------- manual <- explode_sf( x, region_col = "region", alpha_r = 100, alpha_l = 200, plot = FALSE ) manual$params ## ----partial-manual----------------------------------------------------------- more_region_gap <- explode_sf( x, region_col = "region", alpha_r = result$params$alpha_r * 1.5, plot = FALSE ) more_region_gap$params ## ----refine-example, eval=FALSE----------------------------------------------- # refined <- explode_sf( # x, # region_col = "region", # refine = TRUE, # refine_min_gap = 0.15, # refine_max_shift = 0.10, # plot = FALSE # ) # # refined$refinement ## ----refine, echo=FALSE------------------------------------------------------- has_refinement <- "refine" %in% names(formals(explode_sf)) if (has_refinement) { refined <- explode_sf( x, region_col = "region", refine = TRUE, refine_min_gap = 0.15, refine_max_shift = 0.10, plot = FALSE ) refined$refinement } else { message("This installed explodemap build does not include refinement yet.") } ## ----centroid-mode------------------------------------------------------------ pos <- explode_sf( x, region_col = "region", centroid_fun = "point_on_surface", plot = FALSE ) ## ----tiger-example, eval = FALSE---------------------------------------------- # nj <- explode_state( # state_fips = "34", crs = 32118, # region_map = list( # North = c("Bergen", "Essex", "Hudson", "Morris", # "Passaic", "Sussex", "Union", "Warren"), # Central = c("Hunterdon", "Mercer", "Middlesex", # "Monmouth", "Somerset"), # South = c("Atlantic", "Burlington", "Camden", "Cape May", # "Cumberland", "Gloucester", "Ocean", "Salem") # ), # label = "New Jersey" # ) ## ----lookup-example, eval = FALSE--------------------------------------------- # groups <- read.csv("region_assignments.csv") # # result <- explode_sf_with_lookup( # my_sf, # join_col = "GEOID", # lookup = groups, # lookup_key = "geoid", # region_col = "region" # ) ## ----export-example, eval = FALSE--------------------------------------------- # result <- explode_sf( # my_sf, # region_col = "region", # export = "output.geojson" # ) ## ----focus-map, eval=FALSE---------------------------------------------------- # focus_map( # result, # label_col = "id", # id_col = "id", # group_col = "region", # group_palette = c(A = "#4C78A8", B = "#F58518", C = "#54A24B"), # info_cols = c("id", "region"), # info_card_scale = 0.95 # ) ## ----shiny-focus-map, eval=FALSE---------------------------------------------- # ui <- shiny::fluidPage( # focusmapOutput("map", height = "650px"), # shiny::verbatimTextOutput("selected") # ) # # server <- function(input, output, session) { # exploded <- explode_sf(x, "region", plot = FALSE, quiet = TRUE) # # output$map <- renderFocusmap({ # focus_map( # exploded, # label_col = "id", # id_col = "id", # group_col = "region", # group_palette = c(A = "#4C78A8", B = "#F58518", C = "#54A24B") # ) # }) # # output$selected <- shiny::renderPrint(input$map_selected) # } ## ----section-focus-map, eval=FALSE-------------------------------------------- # focused <- explode_section( # x, # section_col = "region", # section = "A", # region_col = "county", # alpha_r = 900, # alpha_l = 600, # plot = FALSE, # quiet = TRUE # ) # # focus_map( # focused, # label_col = "id", # context_col = ".explodemap_role", # context_mode = "fade" # ) ## ----tiny-feature-focus, eval=FALSE------------------------------------------- # focus_map( # focused, # label_col = "id", # context_col = ".explodemap_role", # context_mode = "fade", # min_focus_width = 115, # min_focus_height = 88, # tiny_feature_threshold = 52, # tiny_feature_boost = 1.45, # origin_context = "inset", # origin_context_position = "bottom-left", # focus_context_opacity = 0.14, # show_drag_zoom = TRUE # )