Вы ищете stat_sf_coordinates()
, здесь описано .
library(ggplot2)
nc <- sf::st_read(system.file("shape/nc.shp", package="sf"))
#> Reading layer `nc' from data source `/Library/Frameworks/R.framework/Versions/3.6/Resources/library/sf/shape/nc.shp' using driver `ESRI Shapefile'
#> Simple feature collection with 100 features and 14 fields
#> geometry type: MULTIPOLYGON
#> dimension: XY
#> bbox: xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
#> epsg (SRID): 4267
#> proj4string: +proj=longlat +datum=NAD27 +no_defs
ggplot(nc) +
geom_sf()
ggplot(nc) +
geom_sf() +
stat_sf_coordinates()
#> Warning in st_point_on_surface.sfc(sf::st_zm(x)): st_point_on_surface may
#> not give correct results for longitude/latitude data
ggplot(nc) +
geom_sf() +
geom_point(
aes(color = SID74, size = AREA, geometry = geometry),
stat = "sf_coordinates"
) +
scale_color_viridis_c(option = "C") +
theme(legend.position = "bottom")
#> Warning in st_point_on_surface.sfc(sf::st_zm(x)): st_point_on_surface may
#> not give correct results for longitude/latitude data
Создано в 2019-11-03 пакетом Представить (v0.3.0)
Один комментарий ооператор geometry = geometry
внутри вызова aes()
последнего примера: и geom_sf()
, и stat_sf_coordinates()
автоматически сопоставят столбец геометрии, если они найдут его в наборе данных. Тем не менее, geom_point()
не знает о столбцах геометрии и, следовательно, не автоматизирует, поэтому мы должны отобразить вручную.