Exemplos de criação de mapas no R

##-------------------------------------------
##   OBTENDO E DESCOMPACTANDO O SHAPEFILE
##-------------------------------------------
ender = "~/GitHub/webpage/fsbmat.github.io/blog_posts/30-01-2017/Shapefiles"
 ## endereço de trabalho
setwd(ender) ## set o endereço de trabalho que receberá os arquivos

## site do shapefile
url0  =
  'ftp://geoftp.ibge.gov.br/organizacao_do_territorio/malhas_territoriais/malhas_municipais/municipio_2015/UFs/MG/MG.zip'

## faz o download do shapefile
if (!file.exists(basename(url0))) download.file(url0, dest=basename(url0), mode = "wb")
unzip(basename(url0)) ## extrai os arquivos

##-------------------------------------------
##         LENDO O SHAPEFILE
##-------------------------------------------
library("rgdal");
#endereço da subpasta
ender <- "~/GitHub/webpage/fsbmat.github.io/blog_posts/30-01-2017/Shapefiles/MG"
 ## endereço de trabalho
setwd(ender) ## set o endereço de trabalho que receberá os arquivos
pb_poligonos_rgdal <- readOGR(dsn=path.expand(ender), layer="31MUE250GC_SIR", verbose=FALSE, stringsAsFactors=FALSE);

##-------------------------------------------
##         SEPARANDO ALGUNS MUNICÍPIOS
##-------------------------------------------
#Mun = data.frame(
#  cid = c('Florestal', 'Lajinha', 'Viçosa'), 
#  cor = c('red', 'blue', 'orange'),
#  Temp = c(23, 34, 40))


#setwd("~/GitHub/webpage/fsbmat.github.io/blog_posts/30-01-2017/MG")
#Carregar o shapefile
#library("rgdal");
#pb_poligonos_rgdal <- readOGR(dsn=path.expand("~/GitHub/webpage/fsbmat.github.io/blog_posts/30-01-2017/MG"), layer="31MUE250GC_SIR", verbose=FALSE, stringsAsFactors=FALSE);
#Separar os dados do shape num data frame
pb_dados <- slot(object=pb_poligonos_rgdal, name="data");
print( pb_dados[840:853, 1:2] );
##                 NM_MUNICIP CD_GEOCMU
## 839             VERÍSSIMO   3171105
## 840          VERMELHO NOVO   3171154
## 841             VESPASIANO   3171204
## 842                VIÇOSA   3171303
## 843                VIEIRAS   3171402
## 844         MATHIAS LOBATO   3171501
## 845         VIRGEM DA LAPA   3171600
## 846              VIRGÍNIA   3171709
## 847          VIRGINÓPOLIS   3171808
## 848           VIRGOLÂNDIA   3171907
## 849 VISCONDE DO RIO BRANCO   3172004
## 850           VOLTA GRANDE   3172103
## 851         WENCESLAU BRAZ   3172202
## 852             JUVENÍLIA   3136959
#Corrigindo o nome de Viçosa
pb_dados$NM_MUNICIP[843]<-"VIÇOSA"
#Criar uma lista com os nomes dos municípios de interesse
lista_municipios <- c("FLORESTAL", "LAJINHA", "VIÇOSA");
#Encontrar o indice numérico correspondente aos municípios desejados
indice_numerico <- which( pb_dados$NM_MUNICIP %in% lista_municipios );
print(indice_numerico);
## [1] 290 431 843
#Pegar apenas as informações dos polígonos dos municípios desejados
dados_municipio <- pb_poligonos_rgdal[indice_numerico, ];
#Fazer o plot dos municípios desejados
plot( dados_municipio, axes=TRUE, border="darkgrey", main="Poligonos dos municipios selecionados" );

#plotar os poligonos sobre o mapa de Minas
plot( pb_poligonos_rgdal, axes=TRUE, border="darkgrey", main="Mapa de municipios do Estado de Minas Gerais \n com os municipios selecionados em destaque" );
plot( dados_municipio, border="darkgray", col="red", add=TRUE );

#Poligono de Florestal
mun_florestal <- pb_poligonos_rgdal[indice_numerico[1], ]
plot(mun_florestal, axes=TRUE, border="darkgrey", main= "Poligono de Florestal" )