Le langage de programmation R peut être utile pour réaliser rapidement des proto de cartes et visualiser facilement des données.
Créer une carte choroplète se fait ainsi assez simplement et on va le voir tout de suite. Premier conseil si vous débutez avec R, je vous conseille d’installer RStudio, un IDE spécialement conçu pour R, bien fait et pratique.
Tout d’abord, les ingrédients pour réaliser notre recette :
- Le fichier shapefile des départements français dispo sur data.gouv.fr – n’hésitez pas à choisir une version simplifiée, moins lourde et bien assez détaillée pour le travail d’aujourd’hui.
- Les données que l’on va visualiser. J’ai choisi pour l’occasion un fichier extrêmement simple, le CSV des effectifs des consommateurs du médiator par département, également dispo sur data.gouv.fr.
Voici le résultat :
Et voici le code qui permet de réaliser cette carte. On va détailler un peu chaque ligne juste après.
library(ggplot2) library(ggmap) library(gpclib) library(maptools) gpclibPermit() mediator <- read.csv("mediator.csv", sep=";") map <- readShapeSpatial("/media/julien/Fichiers/ETALAB/data/tutoR/chrolo/departements.shp") map <- fortify (map, region="code_insee") ggplot() + geom_map(data=mediator, aes(map_id=numero, fill=effectif), color="#999999", size=0.1, map=map) + coord_map() + expand_limits(x=map$long, y=map$lat) + scale_fill_gradient(name="Effectif", limits=c(300,30000), breaks=c(300,1300,2300,7300,30000), low="LightYellow", high="Firebrick", guide="legend") + theme_nothing(legend = TRUE)
Maintenant voyons ce que l’on a dans le détail. On vient tout d’abord appeler les librairies essentielles.
Puis on vient lire le csv de nos effectifs. On continue avec la carte en lisant notre fichier shapefile puis en dessinant les contours de nos départements selon le code_insee.
On vient ensuite construire notre carte à proprement parler avec la librairie ggplot2 ainsi que ggmap. On renseigne les variables avec les noms des colonnes de notre csv : numero qui correspond au code INSEE et qui permet de joindre le shp et le csv (les deux fichiers possèdent donc une colonne commune) et effectif, la valeur qui sera cartographiée.
Dernière ligne importante, la création du gradiant de notre carte avec scale_fill_gradient. On définit les limites, les différentes gradations, la couleur pour notre valeur la plus basse, la couleur pour notre valeur la plus haute et hop le tour est joué !