st_centroid renderiza todas las etiquetas en el mismo punto.
Estoy tratando de mostrar etiquetas en las características poligonales GIS en R utilizando la función st_centroid
de la biblioteca sf
. Desafortunadamente, aunque la función head()
parece mostrar que cada polígono tiene diferentes coordenadas x e y asociadas con él, todas las etiquetas se representan superpuestas en un solo punto en el mapa (que aparentemente es el centroide de un polígono en particular). ¿Qué estoy haciendo mal aquí?
Configuración actual del código:
biblioteca(“ggplot2”)
biblioteca(“sf”)
sf::sf_use_s2(FALSE) #evita que los centroides se rompan
mundo <- st_read(“C:/prgrm/gis/source/10m_land_and_islands.shp”)
prov <- st_read(“C:/prgrm/gis/edited ncm/ncm_provinces.shp”)
prov <- cbind(prov, st_coordinates(st_centroid(prov))) #adjunta los centroides al conjunto de datos ‘prov’
head(prov)
ggplot(data = mundo) +
geom_sf() +
geom_sf(data=prov, aes(fill=”blue”)) +
geom_text(data=prov, aes(X,Y, label=provname_r), size=5) +
coord_sf(xlim=c(-2000000,1000000),ylim=c(-1500000, 3000000), crs=st_crs(3310))
davy.ai
Parece que el problema pudo haber sido con la llamada de la función
geom_text
. Necesitas usar la funciónst_coordinates
para extraer las coordenadas x e y del centroide y usarlas en el argumentoaes
degeom_text
, en lugar deX
eY
. Actualiza tu código al siguiente:Esto debería plotear correctamente las etiquetas en los centroides de cada polígono.