Extract coordinates from 'sf' objects (inset-aware)
Source:R/stat_sf_coordinates_inset.R
stat_sf_coordinates_inset.Rd
Reduce spatial data to coordinates in the same way as stat_sf_coordinates()
.
The result can then be used by geom_sf()
or
geom_sf_inset()
or any geom that needs x
and
y
aesthetics.
Usage
stat_sf_coordinates_inset(
mapping = ggplot2::aes(),
data = NULL,
geom = "point",
position = "identity",
...,
inset = NA,
fun.geometry = NULL,
where = "inset",
na.rm = TRUE,
show.legend = NA,
inherit.aes = TRUE
)
Arguments
- mapping, data, geom, position, na.rm, show.legend, inherit.aes, ...
- inset
Inset configuration; see
configure_inset()
. IfNA
(the default), this is inherited from the coord (seecoord_sf_inset()
).- fun.geometry
A function that takes a
sfc
object and returns asfc_POINT
with the same length as the input. IfNULL
,function(x) sf::st_point_on_surface(sf::st_zm(x))
will be used. Note that the function may warn about the incorrectness of the result if the data is not projected, but you can ignore this except when you really care about the exact locations.- where
Specifies how the text position interacts with the inset.
"inset"
means that any points in the inset area are drawn on the inset map,"base"
puts them on the base map. This setting is merely a shorthand for setting the position aesthetics toafter_stat(x_inset)
orafter_stat(x)
respectively, so will have no effect if these are specified in the mapping.
Computed variables
- x
X dimension of the simple feature
- y
Y dimension of the simple feature
- x_inset
X dimension of the simple feature after inset transformation
- y_inset
Y dimension of the simple feature after inset transformation
- inside_inset
logical indicating points inside the inset viewport
- inset_scale
1 for points outside the inset, otherwise the configured inset scale parameter
Examples
library(ggplot2)
nc <- sf::st_read(system.file("shape/nc.shp", package = "sf"), quiet = TRUE)
ggplot(nc) +
geom_sf_inset() +
geom_inset_frame() +
geom_sf_text(aes(x = after_stat(x_inset), y = after_stat(y_inset), label = NAME),
stat = "sf_coordinates_inset") +
coord_sf_inset(inset = configure_inset(
centre = sf::st_sfc(sf::st_point(c(-80, 35.5)), crs = 4326),
scale = 1.5, translation = c(-50, -140), radius = 50, units = "mi"))