6 Añadir elementos a la representación las de capas
Se puede representar en una capa el valor de cualquier columna de la tabla de atributos. En particular, vamos a representar mediante etiquetas los nombres de los municipios y, creando un mapa de coropletas, un valor numérico.
6.1 Mostrar etiquetas
Las etiquetas las mostramos a continuación mediante la función text()
. A esta función le tenemos que indicar, para cada fila, la posición donde escribir el texto y el campo que contiene el texto a escribir. Para determinar automáticamente las coordenadas, utilizamos la función st_centroid()
que devuelve el centroide de la representación de cada municipio; a partir del centoide, mediante la función st_coordinates()
se obtienen sus coordenadas. El texto que se representa es el contenido en el campo municipio
. Mediante el resto de parámetros se indica la posición relativa del texto respecto a centroide y su tamaño.
seleccion <- "Lanjarón"
municipio_sel <- censo[censo$municipio == seleccion,]
plot(st_geometry(censo), axes = TRUE, main = seleccion)
plot(st_geometry(municipio_sel), col = "lightgreen", add = TRUE)
text(
st_coordinates(st_centroid(st_geometry(censo))),
labels = censo$municipio,
pos = 3,
cex = 0.5
)
A continuación, se muestra una forma alternativa de obtener un mapa con las etiquetas de los nombres; en este caso, mediante las funciones del paquete tmap
. En la primera línea, mediante la función tm_shape()
, se indica qué se quiere representar; en las líneas siguientes, se incluyen más detalles o más datos de la representación13. En este caso, no se puede ejecutar línea a línea sino que se ejecuta conjuntamente como un todo.
library(tmap)
tm_shape(censo) +
tm_fill("white") +
tm_borders() +
tm_text("municipio", size = 0.3) +
tm_shape(municipio_sel) +
tm_fill("lightgreen") +
tm_borders(lwd = 2) +
tm_text("municipio", size = 0.3) +
tm_layout(
frame = FALSE,
title = seleccion,
title.size = 1,
title.position = c(0.5, "top")
)
6.2 Representar información numérica
La función plot()
representa directamente información numérica en forma de mapa de coropletas, basta con indicar explícitamente el campo de la tabla de atributos a utilizar en la representación, como se muestra a continuación.
A continuación, se muestra cómo obtener un resultado similar al anterior pero con el paquete tmap
.
Esta es una manera de componer funciones que ofrece el paquete
magrittr
(https://magrittr.tidyverse.org/).↩︎