Ahora se puede trabajar mapas con STATA. Se necesita una serie de archivos que permiten dibujar el mapa, por supuesto. Estos archivos del mapa los podemos obtener por ejemplo del Instituto Geográfico Nacional. Luego de una preparación sencilla, los archivos del mapa serán emparejados con otro archivo que contiene la data (variable) que queremos representar en el mapa. Finalmente preparamos un archivo para las etiquetas.
En la parte inferior de la página del Instituto Geográfico Nacional se observa las opciones para descargar archivos (de instituciones similares se puede obtener mapas para otros países):

En este caso descargar el archivo "Limites Departamentales". Se obtiene un archivo comprimido. Descomprimir y mover la carpeta que se crea: "departamentos" a una ubicación deseada. El contenido de la carpeta "departamentos" se muestra a continuación:

Para comenzar se borra la pantalla, se borra toda la memoria y se establece una variable global llamada "departamentos" con la ruta de la carpeta de trabajo, y se cambia la carpeta de trabajo (esto es importante)
cls
clear all
global departamentos C:\WORK\departamentos
cd "$departamentos"
Transformar el archivo shp a un archivo dta (que sin embargo sigue vinculado a los otros archivos en la carpeta "departamentos" por lo que es necesario trabajar en esta carpeta )
spshape2dta "$departamentos\DEPARTAMENTOS.shp", saving(departamentos) replace
use "$departamentos\departamentos.dta", clear
browse */opcional/*
El archivo departamentos.dta contiene las variables _ID _CX _CY que son las que permiten dibujar el mapa y DEPARTAMEN que es la clave que se va a usar para fusionar archivos.

Agregando una variable (columna) numérica ya se podría generar un mapa. Vamos a hacerlo con un ejemplo ficticio pero con significado.
Construimos (descargar y descomprimir) un archivo ventas.dta en la misma carpeta (esto es muy importante).
La variable DEPARTAMEN es la clave para fusionar archivos y debe ser exactamente igual a la clave en el archivo departamentos.dta (y también se va a usar para las etiquetas). La variable mercado indica si en la región tenemos clientes, si es una zona de expansión o si no está en los planes inmediatos. La variable ventas indica ventas totales (actuales y potenciales) en un territorio. Como la variable mercado es "string" (cadena de carácteres) se crea la variable cobertura con:
use "$departamentos\ventas.dta", clear
encode(mercado), generate(cobertura)
codebook cobertura */opcional/*
browse */opcional/*
save "$departamentos\ventas.dta", replace

Las variables en rojo son "string" (cadena de carácteres). Las variables en azul son numéricas, pero con una etiqueta. Para cobertura, en azul, "Actual" toma el valor de 1, "Proyectada" toma el valor de 2 y "Sin Plan" toma el valor de 3.
Se fusionan los archivos usando la variable DEPARTAMEN como clave:
use "$departamentos\departamentos.dta", clear
merge m:m DEPARTAMEN using "$departamentos\ventas.dta", nogem
tab _ID, missing */opcional/*
drop if _ID == .
gen xco = _CX
gen yco = _CY
order _ID _CX _CY xco yco */opcional/*
browse */opcional/*
save "$departamentos\ventas1.dta", replace
Se prepara un archivo para la etiquetas:
use "$departamentos\ventas1.dta", clear
gen labtype =1
append using "$departamentos\ventas1.dta"
replace labtype = 2 if labtype==.
replace DEPARTAMEN = string(ventas, "%4.0f") if labtype == 2
keep if cobertura < 3
keep xco yco DEPARTAMEN labtype cobertura
browse */opcional/*
save "$departamentos\etiquetas.dta", replace
Se grafica las ventas atuales y potenciales usando la variable cobertura del archivo ventas1, para identificar los territorios. La variable ventas, ahora es un cadena de carácteres "string" parte de la variable DEPARTAMEN que se usa para las etiquetas y se recupera del archivo etiquetas. Se escoge algunas opciones para los colores, leyenda y títulos:
use "$departamentos\ventas1.dta", clear
grmap cobertura, clmethod(unique) clnumber(3) clbreaks(1 2 3) legtitle(Leyenda) legcount fcolor(Terrain) ocolor(white ..) title("MANUFACTURA", size(*0.8)) subtitle("Planes de expansión" "Ventas totales", size(*0.65)) legstyle(2) legend(region(lcolor(black))) label(data("$departamentos\etiquetas.dta") xcoord(xco) ycoord(yco) label(DEPARTAMEN) by(labtype) size(*0.65 ..) pos(12 0)) name(MANUFACTURA, replace)
El gráfico se puede guardar y exportar:
graph save "MANUFACTURA" "$departamentos\MANUFACTURA.gph", replace
graph use "$departamentos\MANUFACTURA.gph"
graph export "$departamentos\Expansión.jpg", as(jpg) name("MANUFACTURA") quality(100) replace
graph export "$departamentos\Expansión.pdf", as(pdf) name("MANUFACTURA") replace
¡El resultado debe verse como en la figura!
Guardar y cerrar el archivo.
Por favor, me comentan si les salió, también me comentan si hay algún error (de tipeo).😊 Si algún archivo no descarga, no duden en solicitarlo por e-mail.

Por favor citar así:
"Cueto, Diego C. (19 de abril de 2023). Mapas con STATA. [Mensaje en un blog].
Recuperado de https://dcueto9.wixsite.com/website/post/mapasconstata"
¡Puedes compartir en las redes sociales!😉
Comments