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.

¿Por qué la leyenda está distorsionada en mi mapa utilizando tmap?

Estoy siguiendo un ejemplo de “Geocomputation with R” en el Capítulo 4, sección 4.2.6. En el ejemplo del libro, el mapa de Nueva Zelanda que muestra la elevación promedio en los polígonos/regiones tiene una leyenda agradable y compacta que es fácil de leer y se coloca automáticamente en la esquina superior izquierda. Consulta la imagen generada a continuación.

Aquí está el enlace a la sección del libro: https://geocompr.robinlovelace.net/spatial-operations.html

Imagen

Cuando ejecuto el mismo código para intentar duplicar este mapa, la imagen resultante tiene una leyenda muy distorsionada con un texto también pequeño. He intentado ajustar mi panel de Gráficos, exportar la imagen en varios formatos, etc., y la leyenda sigue siendo distorsionada como se muestra.

Imagen

El siguiente código es el que estoy ejecutando:

library(sf)
library(spData)
library(tmap)

# Resumir las regiones de Nueva Zelanda por elevación promedio
nz_agg <- aggregate(x = nz_height, by = nz, FUN = mean)

# Mapa de las regiones de Nueva Zelanda coloreadas según la elevación promedio
tm_shape(nz) +
  tm_polygons() +
  tm_shape(nz_agg) +
  tm_polygons(col = "elevation")

Hace un par de meses, cuando producía tmaps con leyendas, no tenía este problema. No sé si se ha cambiado o actualizado alguna configuración que desconozco. La versión de R que estoy utilizando es la 4.1.2 (2021-11-01) – “Bird Hippie”.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Es posible que haya habido actualizaciones o cambios en el paquete tmap que hayan afectado cómo se muestra la leyenda. Una solución potencial para probar es ajustar los parámetros de la leyenda utilizando la función tm_layout. Por ejemplo:

    tm_shape(nz) +
      tm_polygons() +
      tm_shape(nz_agg) +
      tm_polygons(col = "elevation") +
      tm_layout(legend.position = c("left", "top"),
                legend.frame = TRUE,
                legend.outside = TRUE,
                legend.title.size = 0.8,
                legend.text.size = 0.7)
    

    Este código ajusta la posición de la leyenda, agrega un marco y la coloca fuera del área del mapa. También ajusta el tamaño del título y del texto para intentar que sea más legible. Es posible que necesite jugar con estos parámetros para encontrar lo que funcione mejor para su mapa y datos específicos.

    Otra opción es utilizar el paquete ggplot2 para crear el mapa y la leyenda. Si bien esto requiere un poco más de código, puede ofrecer un mayor control sobre la apariencia de la leyenda. Un ejemplo de cómo utilizar ggplot2 para crear un mapa y leyenda se puede encontrar en la misma sección del libro, justo debajo del ejemplo de tmap.

Comments are closed.