Created
June 2, 2012 07:51
-
-
Save datagistips/2857180 to your computer and use it in GitHub Desktop.
Elections Simple Choropleth
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
library(rgdal) | |
library(maptools) | |
library(classInt) | |
setwd("F:/METHODES/1205_CAMPAGNE_PRES") | |
######################### | |
## READING SOURCE DATA ## | |
######################### | |
# on intègre les contours des communes GEOFLA | |
comm <- readOGR("F:/DATAS/GEOFLA/COMMUNES/COMMUNE.SHP", "COMMUNE") | |
## DONNEES ELECTORALES ## | |
# http://www.data-publica.com/opendata/13495--resultats-du-deuxieme-tour-de-l-election-presidentielle-2012 | |
votes <- read.csv2("IN/resultats2012.csv", sep=",", quote="\"") | |
# on calcule le pourcentage de votes " | |
# pour l'un et l'autre des candidats | |
votes$pc.sar <- votes$results.sarkozy / votes$results.exprimes | |
votes$pc.hol <- votes$results.hollande / votes$results.exprimes | |
####################### | |
## UNMATCHED REMOVAL ## | |
####################### | |
# on peut afficher pour quelles communes | |
# on ne trouve pas de résultats de votes | |
nmatch <- which(is.na(match(comm@data$INSEE_COM, votes$commune.code))) | |
print(comm@data[nmatch, c("INSEE_COM", "NOM_COMM")]) | |
# on les supprime de la donnée géographique | |
comm <- comm[-nmatch, ] | |
############# | |
## MERGING ## | |
############# | |
# on lance la jointure | |
m <- merge(comm@data, votes, by.x="INSEE_COM", by.y="commune.code", all.x=TRUE) | |
# avant d'affecter le nouveau data.frame à la donnée géo initiale, | |
# on doit affecter les mêmes noms de lignes pour chacune des 2 données source | |
comm <- spChFIDs(comm, as.character(comm$INSEE_COM)) | |
rownames(m) <- as.character(m$INSEE_COM) | |
## COMBINING GEO SOURCE & DATA SOURCE ## | |
comm2 <- SpatialPolygonsDataFrame(as(comm, "SpatialPolygons"), data=m) | |
############ | |
# PLOTTING # | |
############ | |
# avant d'afficher la carte, on va reclasser les données | |
# selon des intervales 20 classes | |
# on teste selon intervalles réguliers ainsi que jenks | |
cls <- classIntervals(comm2$pc.sar, n=20, style="equal") | |
# on trouve les couleurs correspondantes | |
# en fonction des classes et de la palette | |
colcode <- findColours(cls, c("red", "white", "blue")) | |
plot(comm2, col=colcode, border=NA) | |
# on affiche les contours régionaux par dessus | |
dep <- readOGR("F:/DATAS/GEOFLA/DEPARTEMENTS/DEPARTEMENT.SHP", "DEPARTEMENT") | |
reg <- maptools::unionSpatialPolygons(dep, dep$NOM_REGION) | |
plot(as(reg, "SpatialLines"), col=rgb(0,0,0,.2), lwd=2, add=T) | |
text(coordinates(reg), labels=row.names(reg), cex=.5, col=rgb(0,0,0,.5)) | |
title(main="résultats des élections présidentielles - second tour") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment