J'ai préparé quelques fonds de cartes simplifiés disponibles sur seafile. Il faut toujours charger les fichiers dbf, prj, shp et shx. Enregistrez-les dans un répertoire "maps" dans votre dossier de travail.
La librairie utilisée pour tracer les cartes est Cartography. La documentation sur le CRAN.
# Librairies nécessaires pour la carto
library(cartography)
library(rmapshaper)
library(rgdal)
library(RColorBrewer)
# lecture du fond
mComS <- readOGR("maps/mComS.shp")
# Afficher les palettes disponibles
display.brewer.all()
# Ne retenir que le Grand Est
grandEst <- c("08", "10", "51", "52","54", "55", "57","67","68", "88")
comGE <- mComS[mComS@data$INSEE_DEP %in% grandEst, ]
plot(comGE, lwd = 0.1)
### Faire une carte typologique ###
# spdf = le fond de carte ; df = les données
# spdfid et dfid = les 2 variables qui permettent de faire le lien entre spdf et df
# col = couleurs, nbr de classe. changer la valeur Wine.pal pour d'autres couleurs,
# cf. doc de cartography
# nclass = nbr de classes
plot.new() # Créer un nouveau graphique vide
plot(comGE, lwd = 0.1) # Dessiner les contours des communes
typoLayer(spdf = comGE, df = com, spdfid = "INSEE_COM",
dfid = "CODGEO", var = "classeAbs", border = NA,
col = carto.pal("wine.pal", 5), legend.pos = "topleft",
add = TRUE, legend.title.txt = "Taux d'abstention",
legend.values.order = c("Très faible", "Faible", "Médiane", "Elevée", "Très élevée")
)
### Faire la carte choropleth ###
### L"intérêt est que la carte est faite directement à partir d'une variable quanti ###
# spdf = le fond de carte ; df = les données
# spdfid et dfid = les 2 variables qui permettent de faire le lien entre spdf et df
# method = comment discrètiser la variable à représenter
# (donc, pas besoin de faire des classes avant, ça se fait à la volée
# col = couleurs, nbr de classe. changer la valeur Wine.pal pour d'autres couleurs,
# cf. doc de cartography
# nclass = nbr de classes
plot.new() # Créer un nouveau graphique vide
plot(comGE, lwd = 0.1) # Dessiner les contours des communes
choroLayer(spdf = comGE, df = com, spdfid = "INSEE_COM",
dfid = "CODGEO", var = "txAbs", border = NA,
col = carto.pal("wine.pal", 5), legend.pos = "topleft", legend.values.rnd = 2,
add = TRUE, method = "quantile", nclass = 5, legend.title.txt = "Taux d'abstention"
)
# Liste des préfectures
listePref <- c("67482", "68066", "68224",
"57463", "54395", "10387", "08105", "51108",
"52121", "55029", "88160")
# Positionner les préfectures
points(coordinates(comGE[comGE@data$INSEE_COM %in% listePref,
]), pch = 16, cex = 0.9, col = "grey50")
# Noms des préfectures
nomsPref <- comGE[comGE@data$INSEE_COM %in% listePref, ]
labelLayer(spdf = comGE, df = nomsPref@data,
spdfid = "INSEE_COM", dfid = "INSEE_COM", txt = "NOM_COM_M", col = "White",
cex = 0.6, overlap = TRUE, show.lines = FALSE, halo = TRUE,
bg = "black", r = 0.005, pos = 3, font = 2)
