Programmer en R/Visualiser une carte choroplèthe
R permet la création de cartes.
Coloriage des départements Français
[modifier | modifier le wikicode]Pour illustrer la géographie de la démographie française, on peut colorier les différents département selon le taux d'accroissement de la population.
L'INSEE fournit les données de population par commune, on les enregistre dans un fichier csv (population.csv
) sous la forme :
"DEPCOM" "DEP" "DEPPCT" "LIBMIN" "PSDC99" "PSDC90"
1001 1 110 "L'Abergement-Clémenciat" 728 579
1002 1 101 "L'Abergement-de-Varey" 168 159
1004 1 101 "Ambérieu-en-Bugey" 11436 10455
1005 1 130 "Ambérieux-en-Dombes" 1408 1156
1006 1 104 "Ambléon" 86 76
Les données INSEE comportent de nombreuses autres colonnes qui ne nous intéressent pas ici.
On aura également besoin d'un fichier departement.csv
pour lier les numéro de département a leurs nom.
"DEP" "NOM"
01 "Ain"
02 "Aisne"
03 "Allier"
04 "Alpes-de-Haute-Provence"
05 "Hautes-Alpes"
Il n'y a plus qu'a tracer la carte :
> library (maps)
> map ('france')
> title (main="Taux d'evolution de la population entre 1990 et 1999")
> DATA <- read.table ("population.csv", header=TRUE)
> df <- aggregate (data.frame (PSDC99=DATA$PSDC99, PSDC90=DATA$PSDC90), by=list(DATA$DEP), FUN = sum)
> df$TAUX <- (df$PSDC99-df$PSDC90)/df$PSDC90*100
> DEP <- read.table ("departement.csv", header=TRUE)
> df <- merge (df, DEP, by.x="Group.1", by.y="DEP")
> df$CLASS <- cut (df$TAUX, c(-Inf, -6, -4, -2, 0, 2, 4, 6, Inf), right=TRUE)
> col <- c(rgb (1:4/4, 0, 0), rgb (0, 4:1/4, 0))
> map ('france', regions=df$NOM, col=col[df$CLASS], fill=TRUE, add=TRUE, exact=TRUE)
> legend ('bottomleft', legend=attr (df$CLASS, 'levels'), col=col, lty=1, lwd=10)
> box()
On obtient alors le résultat :
De premier abord, ce genre de carte n'est pas évident à obtenir, mais une fois le principe compris, cela devient extrêmement efficace. Nous y reviendrons dans le chapitre Créer des cartes.