Usando o pacote electionsBR para fazer download dos votos dos candidatos a presidente no segundo turno e compatabilizando os codigos IBGE e TSE usando o pacote ribge, para poder gerar um mapa coroplético com a porcentagem de votos do PT por município em 2010.

 

# instalando pacotes se for o caso 
# install.packages("electionsBR")
# install.packages("devtools")
# install.packages("maptools")
# install.packages("RColorBrewer")
# devtools::install_github("tbrugz/ribge")
# iniciando pacotes necessários
library(electionsBR)
library(ribge)
library(maptools)
library(RColorBrewer)
# donwload dos dados votacao para presidente no segundo turdo das eleceições
pt <- president_mun_vote(2010)
# sepando só os votos do pt
pt <- pt[pt$SIGLA_PARTIDO == "PT", ]
# excluindo votos fora do país ZZ e votos em Transito VT
pt <- pt[!(pt$SIGLA_UF %in% c("ZZ", "VT")), ]
# multiplicando a propoção de votos por 100 para termo o resultado em porcentagem e duas casas decimais
pt$TOTAL_VOTOS <- round(pt$TOTAL_VOTOS * 100, 2)
# base para compatibilizar codigo ibge com codigo tse dos municipios
data("municipioIbgeTseMap")
# unindo as base de codigos com a base de voto
pt <- merge(municipioIbgeTseMap, pt, by.x = c("cod_municipio_tse", "uf"), by.y = c("CODIGO_MUNICIPIO", "SIGLA_UF"), all.x = T)
# lendo a shapefile do municipios brasileiros
shp <- readShapeSpatial("municipios_2010/municipios_2010.shp")
# unindos os dados de votos na shapfile
br10 <- merge(shp, pt, by.x = c("codigo_ibg", "uf"), by.y = c("cod_municipio", "uf"), all.x = T)
# Definando a paleta de cores a serem usadas no mapa
cols <- brewer.pal(4, "Reds")
# defindo o ponto de corte das faixas por quantis
brks <- quantile(br10$TOTAL_VOTOS)
# criando o vetor de cores
gs <- cols[findInterval(br10$TOTAL_VOTOS, vec = brks)]
# criando o grafico
plot(br10, col = gs, border = "transparent", main = "Votos no PT em 2010 por Municipio")
# atribuindo legenda
legend( "bottomleft", legend = levels(cut(br10$TOTAL_VOTOS, brks)), fill = cols, title = "%")