Librería

usmap

La función plot_usmap

El paquete usmap permite crear mapas de Estados Unidos en R de una forma muy sencilla. Su principal ventaja es que Alaska y Hawái se colocan debajo del resto de estados, por lo que el mapa queda compacto, y que los mapas son objetos de ggplot2, de modo que puedes personalizarlos con las funciones habituales de ggplot2.

Usa la función plot_usmap para dibujar el mapa. Por defecto, la función muestra los estados, pero puedes mostrar los condados estableciendo regions = "counties".

# install.packages("usmap")
library(usmap)

plot_usmap()

Mapa de Estados Unidos por estados en R con usmap

Mapa de Estados Unidos por condados en R con usmap

Condados

Establece regions = "counties" para dibujar los límites de los condados. Como hay más de 3000 condados puede que quieras reducir el grosor de los bordes con linewidth.

plot_usmap(regions = "counties", linewidth = 0.1)

Seleccionar estados o regiones

Los argumentos include y exclude permiten seleccionar los estados a mostrar, pasando sus abreviaturas, nombres o códigos FIPS. El paquete también proporciona vectores con los estados de cada región, como .west_region, .south_region, .northeast_region o .midwest_region.

plot_usmap(include = .west_region,
           fill = "#E8D5B7", color = "#6B2737")

Mapa de la región oeste de Estados Unidos con usmap

Mapa de los condados de California con usmap

Condados de un estado

Puedes combinar ambos argumentos para mostrar los condados de uno o varios estados. En este ejemplo dibujamos los condados de California.

plot_usmap(regions = "counties", include = "CA",
           fill = "#E8D5B7", color = "#6B2737")

Mapa de coropletas

Para crear un mapa de coropletas necesitarás un data frame con una columna llamada fips o state (o county para los mapas de condados) y una columna con los valores. Pasa el data frame a data y el nombre de la columna a values. En este ejemplo utilizamos el conjunto de datos statepop, que contiene la población de cada estado.

plot_usmap(data = statepop, values = "pop_2022", color = "white") +
  scale_fill_gradient(low = "#FFE8D6", high = "#6B2737",
                      name = "Población", label = scales::comma) +
  theme(legend.position = "right")

Mapa de coropletas de Estados Unidos con usmap

Como la salida es un objeto de ggplot2, los colores del mapa se establecen con las escalas habituales, como scale_fill_gradient o scale_fill_viridis_c, y la leyenda se personaliza con la función theme.

Mapa de coropletas de Estados Unidos por condados con usmap

Mapa de coropletas por condados

Lo mismo se puede hacer con los condados. El conjunto de datos countypov contiene el porcentaje de personas en situación de pobreza de cada condado en 2021, identificado por su código FIPS.

plot_usmap(regions = "counties", data = countypov, values = "pct_pov_2021",
           linewidth = 0.05) +
  scale_fill_viridis_c(name = "Pobreza (%)", option = "magma", direction = -1) +
  theme(legend.position = "right")

Etiquetas

Establece labels = TRUE para mostrar las abreviaturas de los estados (o los nombres de los condados) y usa label_color para cambiar su color. Ten en cuenta que las etiquetas de los estados pequeños del noreste se solaparán.

plot_usmap(data = statepop, values = "pop_2022", color = "white",
           labels = TRUE, label_color = "white") +
  scale_fill_gradient(low = "#E8A87C", high = "#6B2737") +
  theme(legend.position = "none")

Mapa de Estados Unidos con las etiquetas de los estados con usmap

Añadir puntos al mapa

Mapa de Estados Unidos con puntos con usmap

Si quieres añadir puntos al mapa tendrás que transformar las coordenadas (longitud y latitud) a la proyección que usa usmap con usmap_transform. Luego, añádelos con geom_sf. En este ejemplo utilizamos el conjunto de datos citypop, que contiene las coordenadas y la población de la ciudad más poblada de cada estado.

cities <- usmap_transform(citypop)

plot_usmap(fill = "#F2E9E4", color = "white") +
  geom_sf(data = cities, aes(size = city_pop),
          color = "#6B2737", alpha = 0.6) +
  scale_size_continuous(range = c(1, 8), label = scales::comma,
                        name = "Población")

Si quieres crear mapas de otros países consulta cómo crear mapas en ggplot2 y mapas de coropletas en ggplot2. Para mapas interactivos puedes utilizar leaflet.

MASTER - STATISTICS DOT COM

Master Statistics

Aprende estadística desde lo básico hasta técnicas avanzadas, explicado con claridad

Ir al sitio
R PACKAGES IO

R Packages

Explora y descubre miles de paquetes, funciones y datasets de R

Ir al sitio

También te puede interesar