Que tal chibchombianos!
Así como existen 1000 maneras de morir tambien podemos hablar de que existen 1000 formas de hacer todo en R y en este caso graficar un mapa no es la excepción. Aunque personalmente me tomo tiempo encontrar una forma rápida y sencilla para lograrlo, aqui les ahorro esfuerzo y sufrimiento!...
Simplemente deben seguir las siguientes pasos para ser felices:
1. Descargar el shapefile.
El shapefile es un formato para sistemas de información geográfica. De acuerdo con la Wiki es un formato vectorial de almacenamiento digital donde se
guarda la localización de los elementos geográficos y los atributos
asociados a ellos. Si bien la definición es básica, es increible la cantidad de información descriptiva de un mapa que se puede almacenar en un shapefile.
Existe un shapefile disponible casi que para cualquier región y es posible encontrar varios sitios en la web que permiten acceder gratuitamente a sus shapefiles, en este caso les recomiendo la base de datos del GADM a la cual podrán acceder con el siguiente link http://www.gadm.org/
Otros links de interés
Para el ejemplo utilizaremos la base de datos del GADM, asi que vayan a la sección de descarga y seleccionen el mapa de Uzbekistan (de paso se enteran que existe este país) y descarguen el shapefile respectivo.
1a. Instalen y carguen en R las bibliotecas maptools, sp y RColorBrewer
Para instalar los paquetes:
> install.packages("maptools",lib="/directorio")
Para instalar los paquetes:
> install.packages("maptools",lib="/directorio")
Para cargar:
> library(maptools)
# Provee herramientas para leer y manejar objetos espaciales
# Provee herramientas para leer y manejar objetos espaciales
> library(sp)
#Provee métodos para manejar datos espaciales
#Provee métodos para manejar datos espaciales
> library(RcolorBrewer)
# Permite acceder a paletas de colores para cartografía
# Permite acceder a paletas de colores para cartografía
1b. Ahora lean el shapefile y conviertanlo en un vector, en este caso lo llamé ohsi
> ohsi<-readShapeSpatial("UZB_adm1.shp")
#Corresponde al mapa politico de Uzbekistan
#Corresponde al mapa politico de Uzbekistan
1c. Comprueben que se cargo el mapa
> plot(ohsi)
1d. Pueden incluso revisar la estructura interna del vector
> str(ohsi)
> ohsi@data
1.e. Asignen el vector como una variable
> mapa=ohsi
2. El siguiente paso es construir una tabla que contenga en una columna las localidades "LOCAL" y en la siguiente columna algún criterio para la selección de las localidades, en este caso el criterio fue "lugares que quiero visitar en Uzbekistan" y la llame "VISITA" :P. Es importante guardar la tabla en formato csv o delimitado por espacios.
Aqui tienen la tabla
"lOCAL" "VISITA"
"Andijon" "NA"
"Bukhoro" 1
"Ferghana" "NA"
"Jizzakh" "NA"
"Karakalpakstan" "NA"
"Kashkadarya" "NA"
"Khorezm" "NA"
"Namangan" "NA"
"Navoi" "NA"
"Samarkand" 1
"Sirdaryo" "NA"
"Surkhandarya" "NA"
"Tashkent City" "NA"
"Tashkent" 1
"Andijon" "NA"
"Bukhoro" 1
"Ferghana" "NA"
"Jizzakh" "NA"
"Karakalpakstan" "NA"
"Kashkadarya" "NA"
"Khorezm" "NA"
"Namangan" "NA"
"Navoi" "NA"
"Samarkand" 1
"Sirdaryo" "NA"
"Surkhandarya" "NA"
"Tashkent City" "NA"
"Tashkent" 1
La codificación corresponde a: NA=No aplica y 1=lugares que quiero visitar
2a. Ahora deben abrir el archivo de la tabla y crear otro vector el cual llamé "yque"
> yque<-read.csv("tabla.csv",header =TRUE, sep = "\t")
2b. Revisen los datos de la columna visita en la tabla. Deberian ser visibles en la consola.
> yque$VISITA
2c. Reasignen la información de vector "yque" variable "VISITA" a "mapa"
> mapa@data=data.frame(yque$VISITA)
> mapa
3. Aunque hay múltiples paquetes para asignar colores en un mapa, en este caso me base en la paleta de colores de colorBrewer. El color pueden seleccionarlo guiándose con el siguiente link http://colorbrewer2.org/
Ahora grafiquen el mapa con las localidades seleccionadas en "VISITA" y el color lo deben especificar en col.regions=brewer.pal() como sigue a continuación:
> spplot(mapa,c("yque.VISITA"),col.regions=brewer.pal(3, "RdYlBu"), scales=list(draw = TRUE))
Listo!! ahora tenemos el mapa de Uzbekistan y las áreas seleccionadas corresponden a las localidades que me gustarian visitar :P.
otro ejemplo
Fácil! Ahora lo pueden modicar y adaptar a sus datos. Esta es solo una forma sencilla, les recuerdo hay cientos de opciones por explorar!
Buena energia!