Programmer en R/Visualiser une carte choroplèthe

R permet la création de cartes.

Coloriage des départements Français modifier

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.