Created
June 25, 2014 21:09
-
-
Save RaddictsParis/19575cf06bf8a3a05fcc to your computer and use it in GitHub Desktop.
Carte du vote par procuration à Paris. Ce script permet de générer la carte présentée par Baptiste Coulmont lors du 7ème meetup Paris R Addicts
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
# R Meetup CODE R | |
library(maptools) | |
library(rgdal) | |
library(classInt) | |
library(RColorBrewer) | |
setwd("Dropbox/procurations/") | |
library(gpclib) # | |
gpclibPermit() # | |
### | |
# PARIS | |
### | |
# Elections de 2012, avec fichier cartelec 2012 Céline Colange (IR CNRS, UMR IDEES | |
### | |
paris<-readShapeSpatial("paris/paris-2012/paris2012.shp") | |
#on enleve boulogne, qui était dans le shapefile | |
paris<-paris[which(paris$CODEDEP=="75"),] | |
#pour tracer les limites des arrondissements | |
parisarr <- unionSpatialPolygons(paris, paris$CODE) | |
# chargement des données sur les présidentielles à Paris | |
# téléchargées sur opendata paris | |
parisp1<-read.csv2("paris/paris2012prest1ok.csv",header=TRUE) | |
parisp2<-read.csv2("paris/paris2012prest2ok.csv",header=TRUE) | |
# création d'une data.frame qui va contenir les résultats des élections des deux tours | |
# ce n'est pas du code efficace | |
elec<-data.frame() | |
elec<-cbind(parisp1$BV,(parisp1$PROCURATIONS+parisp2$PROCURATIONS),(parisp1$EXPRIMES+parisp2$EXPRIMES)) | |
colnames(elec)<-c("BV","PROCURATIONS","EXPRIMES") | |
elec<-as.data.frame(elec) | |
elec$BV<-parisp1$BV | |
# partie la plus importante | |
# m est l'objet qui fait le lien entre le shapefile et les données électorales | |
m<-match(paris$BUREAU,elec$BV) | |
# plotvar est la variable à cartographier | |
plotvar<-100*elec$PROCURATIONS/elec$EXPRIMES | |
nclr <- 7 # nombre de couleurs utilisées | |
plotclr <- brewer.pal(nclr,"RdYlBu")[nclr:1] | |
class <- classIntervals(plotvar[m], nclr, style="fisher",dataPrecision=1) # découpage suivant l'algo fisher, il en existe d'autres | |
colcode <- findColours(class, plotclr) | |
plot(paris,col=colcode,border=colcode) | |
legend(656274.9, 6867308,legend=names(attr(colcode,"table")), fill=attr(colcode, "palette"), cex=1, bty="n",title="Fréquence moyenne des procurations (%)") | |
title(main="2012, deux tours de présidentielles à Paris",sub="Fonds : Cartelec, Céline Colange (IR CNRS, UMR IDEES) -- Données : opendata.paris.fr -- Cartographie : B. Coulmont",line=1,cex.main=1) | |
plot(parisarr,add=TRUE,lwd=.5) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment