A ggplot2 R extension for plotting Spatial* objects
Clone or download
paleolimbot Merge pull request #23 from paleolimbot/development
fix error from revdepcheck on new version of sf by @edzer
Latest commit f0fcd4d Oct 11, 2018


ggspatial: Spatial data framework for ggplot2

ggspatial on CRAN Travis-CI Build Status Coverage Status

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 devtools. Currently, the package depends on the newly released version of ggplot2, which can be installed using install.package("ggplot2").


Or for the development version:

install.packages("devtools") # if devtools isn't installed


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.


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(alpha = stat(band1)), fill = "darkblue") +
  scale_alpha_continuous(na.value = 0) +
  # layer_spatial trains the scales
  layer_spatial(longlake_depthdf, aes(col = DEPTH_M)) +
  # spatial-aware automagic scale bar
  annotation_scale(location = "tl") +

  # spatial-aware automagic north arrow
  annotation_north_arrow(location = "br", which_north = "true")