Enhancing spatial visualization in ggplot2
rosm::set_default_cachedir(system.file("rosm.cache", package = "ggspatial"))
knitr::opts_chunk$set(
collapse = TRUE,
dpi = 150,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
Spatial data plus the power of the ggplot2
framework means easier mapping.
The package is available on CRAN, and can be installed using install.packages("ggspatial")
. The development version can be installed via remotes.
install.packages("ggspatial")
Or for the development version:
install.packages("remotes") # if remotes isn't installed
remotes::install_github("paleolimbot/ggspatial")
This package is a framework for interacting with spatial data using ggplot2 as a plotting backend. The package supports sf package objects, sp package objects, and raster package objects, and uses geom_sf()
and coord_sf()
to do most of the heavy lifting with respect to coordinate transformation.
library(ggplot2)
library(ggspatial)
load_longlake_data()
ggplot() +
# loads background map tiles from a tile source
annotation_map_tile(zoomin = -1) +
# annotation_spatial() layers don't train the scales, so data stays central
annotation_spatial(longlake_roadsdf, size = 2, col = "black") +
annotation_spatial(longlake_roadsdf, size = 1.6, col = "white") +
# raster layers train scales and get projected automatically
layer_spatial(longlake_depth_raster, aes(colour = after_stat(band1))) +
# make no data values transparent
scale_fill_viridis_c(na.value = NA) +
# layer_spatial trains the scales
layer_spatial(longlake_depthdf, aes(fill = DEPTH_M)) +
# spatial-aware automagic scale bar
annotation_scale(location = "tl") +
# spatial-aware automagic north arrow
annotation_north_arrow(location = "br", which_north = "true")