es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Suavizando polígonos en mapas con ggplot2 y sf

¿Cómo se pueden suavizar los polígonos de un mapa producido con ggplot y sf?

He utilizado el paquete sf para extraer los polígonos de un archivo en formato shapefile


geomunicipios <- st_read("ruta/archivo.shp") Leyendo la capa 'archivo' desde la fuente de datos ruta\archivo.shp' usando el controlador ESRI Shapefile Colección de entidades simples con 45 entidades y 10 campos Tipo de geometría: MULTIPOLÍGONO Dimensión: XY Caja delimitadora: xmin: -2.344411 ymin: 37.37375 xmax: -0.647983 ymax: 38.75509 CRS geodésico: WGS 84

Y ggplot2 para plotear el mapa:


rmurcia <- ggplot(data = geomunicipios) + geom_sf(aes(fill=columna), color="#FFFFFF", size=1)
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para suavizar los polígonos del mapa producido con ggplot y sf, puede utilizar la función geom_sf() con la capa geom_sf_smooth(). Esta capa aplica suavizado a los bordes de los polígonos para que parezcan más suaves.

    Por ejemplo, para agregar suavizado al mapa geomunicipios, puede modificar el código ggplot de la siguiente manera:

    rmurcia <- ggplot(data = geomunicipios) + 
      geom_sf(aes(fill=columna),color="#FFFFFF",size=1) +
      geom_sf_smooth(fill=NA, color="red", size=1, method="lm", se=FALSE)
    

    En el código anterior, se agrega geom_sf_smooth() al gráfico con los siguientes argumentos:

    • fill=NA establece el color de relleno de los polígonos suavizados como transparente.
    • color="red" establece el color de los polígonos suavizados en rojo.
    • size=1 establece el tamaño de los polígonos suavizados en 1.
    • method="lm" establece el método de suavizado como regresión lineal.
    • se=FALSE elimina los intervalos de confianza del gráfico.

    Puede ajustar los argumentos para personalizar la apariencia del suavizado según sus preferencias.

Comments are closed.