The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
This gallery exists for two reasons: to show the range of draggable
plots that dragmapr can create, and to stress the package
with different geometry shapes before real projects depend on it.
example_hhs_layout() bundles the small pieces needed
from the explodemap paper workflow: HHS membership, region names, region
colors, and the published display-offset CSV. The geometry itself is a
lightweight projected fixture.
library(dragmapr)
hhs <- example_hhs_layout()
render_dragged_map(
hhs$states,
region_offsets = hhs$region_offsets,
region_col = "hhs_region",
labels = hhs$labels,
label_offsets = hhs$label_offsets,
region_palette = hhs$region_colors,
region_labels = hhs$region_names,
title = "US Map by HHS Regions"
)The same offset machinery works on any projected sf
geometry. This panel example treats rectangles as diagram or dashboard
cards.
panels <- example_panel_layout()
render_dragged_map(
panels$panels,
region_offsets = panels$region_offsets,
region_col = "group",
labels = panels$labels,
label_offsets = panels$label_offsets,
region_palette = panels$region_colors,
region_labels = panels$region_names,
title = "Draggable non-map panels"
)The key reproducibility test is that offsets can leave the browser as CSV and come back into R without hidden state.
tmp_regions <- tempfile(fileext = ".csv")
tmp_labels <- tempfile(fileext = ".csv")
utils::write.csv(hhs$region_offsets, tmp_regions, row.names = FALSE)
utils::write.csv(hhs$label_offsets, tmp_labels, row.names = FALSE)
render_dragged_map(
hhs$states,
region_offsets = tmp_regions,
region_col = "hhs_region",
labels = hhs$labels,
label_offsets = tmp_labels,
region_palette = hhs$region_colors,
region_labels = hhs$region_names,
title = "CSV round trip"
)This example exercises the newer annotation surface: an info box, a squiggle connector, thicker connector lines, and plot padding for static export.
note <- as_drag_annotations(data.frame(
label_id = "hhs-9-note",
region = "9",
label = "A longer callout can be dragged separately from the region.",
x = hhs$labels$x[hhs$labels$region == "9"],
y = hhs$labels$y[hhs$labels$region == "9"]
), width_px = 210, height_px = 88, connector = TRUE, connector_type = "squiggle")
render_dragged_map(
hhs$states,
region_offsets = hhs$region_offsets,
region_col = "hhs_region",
labels = note,
label_offsets = data.frame(
label_id = "hhs-9-note",
region = "9",
dx_m = 120000,
dy_m = 80000
),
region_palette = hhs$region_colors,
region_labels = hhs$region_names,
connector_linewidth = 1,
connector_linetype = "dashed",
connector_endpoint = "arrow",
legend_title = "HHS region",
map_background = "light_grid",
label_padding = 0.12,
title = "Annotation box and connector"
)Selection filters are render-time controls. They hide selected labels or legend keys without deleting offset rows or changing the source geometry.
render_dragged_map(
hhs$states,
region_offsets = hhs$region_offsets,
region_col = "hhs_region",
labels = hhs$labels,
label_offsets = hhs$label_offsets,
region_palette = hhs$region_colors,
region_labels = hhs$region_names,
label_values = c("1", "2", "3"),
legend_values = c("1", "2", "3"),
title = "Selected labels and legend keys"
)Origin outlines and movement connectors can explain how the layout changed from the original geography. They are optional and off by default.
render_dragged_map(
hhs$states,
region_offsets = hhs$region_offsets,
region_col = "hhs_region",
labels = hhs$labels,
label_offsets = hhs$label_offsets,
region_palette = hhs$region_colors,
region_labels = hhs$region_names,
show_origin_outlines = TRUE,
show_movement_connectors = TRUE,
movement_connector_linetype = "dashed",
movement_connector_endpoint = "closed",
title = "Movement context"
)Several Shiny examples are bundled but not evaluated in this vignette because they launch interactive apps:
if (interactive()) {
shiny::runApp(system.file("examples", "shiny_draggable_plot.R", package = "dragmapr"))
shiny::runApp(system.file("examples", "shiny_custom_labels.R", package = "dragmapr"))
shiny::runApp(system.file("examples", "shiny_draggable_export.R", package = "dragmapr"))
shiny::runApp(system.file("examples", "shiny_spatial_studio.R", package = "dragmapr"))
shiny::runApp(system.file("examples", "shiny_static_export.R", package = "dragmapr"))
}shiny_draggable_export.R demonstrates a common app
pattern: users drag the interactive plot inside Shiny, the helper sends
region and label state back to the parent app, and the app can export a
PNG for a report or document. It also shows toggles for labels, legends,
marker shapes (circle, rounded box, text only), info-box dimensions,
connector style, connector color, connector line pattern, arrow
endpoints, connector thickness, and movement context.
shiny_spatial_studio.R is the general spatial workspace.
It accepts local polygon uploads, including zipped shapefiles, GeoJSON,
and GeoPackage files, then lets users choose grouping/label columns,
colors, annotation style (short labels or info boxes), text size,
connector style, connector line pattern, smart connectors, legend
visibility/title, multiselect legend and label filters, movement
context, map background, and export formats. Region groups are sorted in
natural numeric order throughout the sidebar, the legend, and the
exported CSVs.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.