No sabía cómo mostraros el funcionamiento de getData del paquete raster para evitaros ir a GADM y descargar los correspondientes mapas. Bueno, pues se me ha ocurrido hacer una entrada que tenga el menor número de líneas posibles y que genere un mapa. No me lo tengáis mucho en cuenta:
library(ggplot2) library(raster) library(dplyr) # Obtenemos el mapa de GADM mex <- getData("GADM", country = "MX", level = 2) # El dato que vamos a pintar prov <- data.frame(region = unique(mex@data$NAME_2)) prov$aleatorio <- runif(nrow(prov), 0, 100) # Creamos el objeto mapa al que le añadimos el dato que necesitamos pintar mex_map <- fortify(mex, region = "NAME_2") mex_map <- left_join(mex_map, prov, by = c("id" = "region")) # Pintamos el mapa ggplot(data = mex_map, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = aleatorio)) + scale_fill_continuous(low = "white", high = "blue") + labs(title = "Quick and dirty") + theme_void() Ahí lo tenéis: getData se conecta a GADM donde vía ISO 3 le decimos qué mapa queremos y el nivel que queremos, y pintamos un mapa de México con ggplot2 en un pis pas. Comentad si no entendéis algo; hay miles de entradas que hacen lo mismo de forma más detallada, pero en menos líneas, ninguna. Saludos.