Skip to content

Instantly share code, notes, and snippets.

@sotelo
Created June 23, 2014 18:44
Show Gist options
  • Save sotelo/379c1575282edba57fc3 to your computer and use it in GitHub Desktop.
Save sotelo/379c1575282edba57fc3 to your computer and use it in GitHub Desktop.
Mapa con datos de INEGI
# Paso 1.
# Descargar este archivo y extraer los contenidos en la carpeta XX
# http://mapserver.inegi.org.mx/MGN/mge2010v5_0a.zip
# Paso 2.
# Fijar el directorio de trabajo la carpeta XX en la que descargaste los archivos
setwd("d:/User Profiles/G13087/Documents/R/Mapas/INEGI/Estados")
# Paso 3.
# Necesitas instalar todos los paquetes de abajo.
#install.packages("rgdal")
#install.packages("maptools")
#install.packages("ggplot2")
#install.packages("plyr")
#install.packages("rgeos")
# Paso 4.
# Correr el código. Esto es para el mapa por estados
rm(list = ls())
require("rgdal")
require("maptools")
require("ggplot2")
require("plyr")
require("rgeos")
mex = readOGR(dsn=".", layer="ESTADOS")
mex@data$id = rownames(mex@data)
mex.points = fortify(mex, region="id")
mex.df = join(mex.points, mex@data, by="id")
#
# Para personalizar lo que estas graficando, solo necesitas cambiar la columna val de la base Datos.
#
# Ejemplo con escala continua
Datos <- data.frame(id = sort(unique(mex.df$id)), val = runif(length(unique(mex.df$id))))
# Ejemplo con escala categorica
Datos <- data.frame(id = sort(unique(mex.df$id)), val = as.factor(sample.int(3,length(unique(mex.df$id)), replace = T)))
#######################
#Todo el codigo que escribas va a ir aqui.
# Datos$val <-
#######################
M <- ggplot(Datos, aes(map_id = id))
M <- M + geom_map(aes(fill = val), map = mex.df)
M <- M + expand_limits(x = mex.df$long, y = mex.df$lat)
M <- M + geom_path(data = mex.df, aes(long,lat,group=group), color = "white" )
M <- M + coord_fixed()
M <- M + theme(axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.x = element_blank(),
axis.text.y = element_blank(),
axis.ticks.x = element_blank(),
axis.ticks.y = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank())
M
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment