Comment faire des cartes Choroplèthes et des cartes de proportions avec R ?
Les cartes choroplèthes et les cartes de proportions sont des outils puissants pour visualiser des données géospatiales dans R. Ces cartes permettent de représenter des valeurs quantitatives (par exemple, des taux de population, des moyennes) sur des zones géographiques, souvent des régions administratives comme des départements, des communes, ou des zones géographiques personnalisées.
Introduction aux Cartes Choroplèthes et Cartes de Proportions
Les cartes choroplèthes colorient les régions géographiques en fonction de valeurs numériques ou de proportions, facilitant l’analyse spatiale et la compréhension des variations géographiques. Elles sont couramment utilisées pour des données socio-économiques, de santé publique, ou des analyses environnementales.
Les cartes de proportions sont similaires mais mettent davantage l’accent sur les ratios ou proportions par rapport à une valeur totale, comme des pourcentages ou des fractions de populations.
Notions de Base : Polygones, Shapefiles et Coordonnées Avant de créer ces cartes, il est important de comprendre quelques notions de base, comme les polygones et les shapefiles :
Polygones
Une zone géographique est souvent représentée par un polygone, une forme géométrique fermée qui peut avoir plusieurs côtés. Par exemple, une commune ou un département sur une carte peut être représentée comme un polygone.
Shapefiles
Ce sont un format de fichier standard pour stocker des informations géospatiales, y compris les coordonnées de points, de lignes et de polygones. Ils peuvent contenir les géométries des entités géographiques ainsi que leurs attributs (valeurs associées à chaque région, comme le revenu moyen ou le taux de chômage).
Coordonnées géographiques
Les coordonnées (latitude et longitude) permettent de positionner ces polygones sur une carte. En R, on utilise des systèmes de coordonnées géographiques et projetées pour gérer et visualiser ces données.
Plusieurs pakages permettent de visualiser les données avec les cartes, ici nous interessons aux packages glue et sf.
Zone d’étude
Supposons que nous menions une étude au Burkina-Faso. Par exemple, nous mésurer des indicateurs tels que le taux de mortalité, la couverture sanitaire etc … Le Burkina Faso est un pays qui compte 13 regions, mais notre etude s’étend seulement sur 8 regions. Il convient de montrer toutes les regions, puis de mettre en exègue celles qui nous concernent.
Place au code
voir/cacher le code
###---- Chargement des shapefiles src = GADMroot <-getwd() ##-- la racine du repertoire##- La carte du pays sans les polygones des regions, communes et/ou departementspath0 <-paste0(root,"/DATA_SIG/BFA2/gadm41_BFA_0.shp")##- La carte du pays avec le polygone des regions, sans ceux des communes et/ou departementspath1 <-paste0(root,"/DATA_SIG/BFA2/gadm41_BFA_1.shp")##- La carte du pays avec le polygone des regions, sans ceux des communes et/ou departementspath2 <-paste0("/DATA_SIG/BFA2/gadm41_BFA_2.shp")##- La carte du pays avec le polygone des regions, sans ceux des communes et/ou departementspath3 <-paste0(root,"/DATA_SIG/BFA2/gadm41_BFA_3.shp")##-- selection des regions concernéesstudy.area <-c("Boucle du Mouhoun", "Centre-Est", "Centre-Nord","Centre-Ouest", "Nord", "Sud-Ouest","Haut-Bassins", "Cascades")##-- lecture des shapefilespays_shp <-read_sf(glue(path0), quiet = T)region_shp <-read_sf(glue(path1), quiet = T)#commune_shp <- read_sf(glue(path2), quiet = T)#province_shp <- read_sf(glue(path3), quiet = T)##-- création d'une sous base avec les polygones des regions sélectionnésdata_region <- region_shp %>%filter(NAME_1 %in% study.area)##-- Study area colorsstudy_zone_colors <-c("#1f77b4", "#ff7f0e", "#2ca02c","#3FE1B8", "#9467bd", "#8c564b","#00008B", "#4B0082")study_zone_map <-ggplot() +geom_sf(data = pays_shp, aes(linewidth ="Burkina Faso"),fill ="white", color ="black") +geom_sf(data = region_shp, aes(fill =ifelse( NAME_1 %in% study.area,"Regions d'études","Autres regions" ) )) +geom_sf_text(data = region_shp, aes(label =ifelse( NAME_1 %in% study.area, study.area,"" )), size =4)+ ggspatial::annotation_scale(location ="br",bar_cols =c("black", "white") ) +theme_light()+ ggspatial::annotation_north_arrow(location ="tr", which_north ="true",pad_x =unit(0.05, "in"), pad_y =unit(0.05, "in"),style = ggspatial::north_arrow_nautical(fill =c("black", "white"),line_col ="black" ) )+xlab("")+ylab("")+scale_linewidth_manual(values =c(1.2), name ="")+scale_fill_manual(values =c("white","#1f77b4"), name="Zone d'étude")+theme_light() +guides(linewidth =guide_legend(order =1),fill =guide_legend(order =2),color =guide_legend(order =3) )
study_zone_map
Cartographie de la zone d’étude
Expliquons le code à présent
Charger les fichier shapefiles :
glue : pour preparer la structure du format (optionnel)
readsf : pour lire les fichiers shapefiles
Definir la zone d’étude : les fichier shapefile devient comme un dataframe, donc est manipulable au même titre que les fichiers excel, csv etc …
On trace d’abord la carte du pays, ensuite on ajoute la couche des regions (c’est-à-dire le shapefile des regions). On pourrait le faire simplement avec le shapefile des regions sans celui du pays.
Ensuite on ajoute la couleur pour la zone concernée et les noms des regions sélectionnées avec geom_sf_text
annotation_scale permet d’ajouter une barre d’échelle (scale bar) à une carte avec la position br pour dire bottom rigth (en bas à droite)
annotation_north_arrow est utilisée pour ajouter une flèche du nord sur une carte créée avec ggplot2
Pour le reste il s’agit des fonctions qu’on utilise couramment avec ggplot2
Afficher/Masquer le tableau
Tableau 1 : Les 10 premières lignes du shapefile
GID_1
GID_0
COUNTRY
NAME_1
VARNAME_1
NL_NAME_1
TYPE_1
ENGTYPE_1
CC_1
HASC_1
ISO_1
geometry
BFA.1_1
BFA
Burkina Faso
Boucle du Mouhoun
NA
NA
Région
Region
NA
BF.BO
NA
POLYGON ((-2,73901 11,71249...
BFA.2_1
BFA
Burkina Faso
Cascades
NA
NA
Région
Region
NA
BF.CD
NA
POLYGON ((-4,591742 9,70225...
BFA.7_1
BFA
Burkina Faso
Centre
NA
NA
Région
Region
NA
BF.CT
NA
POLYGON ((-1,2786 12,13921,...
BFA.3_1
BFA
Burkina Faso
Centre-Est
NA
NA
Région
Region
NA
BF.CE
NA
POLYGON ((0,4371 11,67655, ...
BFA.4_1
BFA
Burkina Faso
Centre-Nord
NA
NA
Région
Region
NA
BF.CN
NA
POLYGON ((-0,7773 12,66989,...
BFA.5_1
BFA
Burkina Faso
Centre-Ouest
NA
NA
Région
Region
NA
BF.CO
NA
POLYGON ((-2,360162 11,0081...
BFA.6_1
BFA
Burkina Faso
Centre-Sud
NA
NA
Région
Region
NA
BF.CS
NA
POLYGON ((-0,8624911 10,985...
BFA.8_1
BFA
Burkina Faso
Est
NA
NA
Région
Region
NA
BF.ES
NA
POLYGON ((1,384436 11,44223...
BFA.9_1
BFA
Burkina Faso
Haut-Bassins
NA
NA
Région
Region
NA
BF.HB
NA
POLYGON ((-4,08994 10,79044...
BFA.10_1
BFA
Burkina Faso
Nord
NA
NA
Région
Region
NA
BF.NO
NA
POLYGON ((-1,96586 12,67774...
a Source des données : GADM
Cartes choroplèthes
Les cartes choroplèthes sont des représentations graphiques qui utilisent des nuances de couleurs pour illustrer des données quantitatives ou qualitatives sur des zones géographiques. Chaque zone est remplie d’une couleur qui correspond à une valeur spécifique ou à une plage de valeurs, facilitant ainsi l’analyse des variations spatiales des données.
Les cartes choroplèthes sont idéales pour représenter des indicateurs comme le taux de mortalité, le revenu moyen, l’accès à l’eau potable, ou encore la couverture sanitaire par région.
Exemple de carte choroplèthe
Dans cet exemple, nous allons créer une carte choroplèthe montrant la couverture sanitaire par région au Burkina Faso, en utilisant les données fictives créées plus haut. pour les données, vous pouvez me contacter par email.
Etape 1 :Charger les shapefiles et les données
Ici nous nous assurons que les shapefiles des régions et les données sont correctement chargés et liés entre eux. Pour cela on fait une jointure externe.
##-- Joindre les données au shapefileregion_data <- region_shp %>%left_join(data, by =c("NAME_1"="Region"))
Avant de passer à l’étape 2, affichons les données générées avant jointure et ceux aprés jointures.
Utilisez ggplot2 et geom_sf() pour afficher les régions et les colorer en fonction de la couverture sanitaire.
##- Carte choroplèthechoropleth_map <-ggplot(region_data) +geom_sf(aes(fill = Couverture_Sanitaire), color ="black") +scale_fill_viridis_c(option ="C",name ="Couverture Sanitaire (%)" ) +ggtitle("Carte choroplèthe : Couverture sanitaire par région") +theme_minimal() +theme(legend.position ="right",plot.title =element_text(hjust =0.5, face ="bold") )choropleth_map
Couverture sanitaire par région
Etape 3 : Ajouter des éléments décoratifs
Ajoutons une barre d’échelle et une flèche du nord pour rendre la carte plus informative.
##- Ajout des éléments décoratifschoropleth_map <- choropleth_map + ggspatial::annotation_scale(location ="br") + ggspatial::annotation_north_arrow(location ="tl", style =north_arrow_nautical() ) ###-- tl pour top-left (en haut à gauche)choropleth_map
Interpréter les résultats
Examinez la carte générée et répondez aux questions suivantes : - Quelles régions ont la meilleure couverture sanitaire ? - Quelles régions doivent faire l’objet d’une attention particulière pour améliorer les conditions de vie ?
Extensions possibles
Réalisez une carte choroplèthe pour le taux de mortalité.
Ajoutez des annotations pour les régions ayant les valeurs extrêmes.
Expérimentez avec d’autres palettes de couleurs en utilisant scale_fill_brewer() ou scale_fill_manual() etc ….
Données discrètes ?
Il se peut qu’il n’y ait pas une variabilité importante dans les données dans ce cas, au lieu d’avoir une palette, nous aurons juste des cases de couleurs comme s’agissait d’un indicateur discrèt. Dans ce cas, recoder juste cet indicateur en un indicateur qualitatif (regrouper par classe) et ensuite utiliser scale_fill_manual() pour definir vos couleurs manuellement ou laisser R le faire tout seul. Le graphique ci-dessous en est un exemple.
[Exemple de carte avec un indicateur recodé : Indisponible pour l’instant]
Comment faire des cartes Choroplèthes et des cartes de proportions avec R ?
Les cartes choroplèthes et les cartes de proportions sont des outils puissants pour visualiser des données géospatiales dans R. Ces cartes permettent de représenter des valeurs quantitatives (par exemple, des taux de population, des moyennes) sur des zones géographiques, souvent des régions administratives comme des départements, des communes, ou des zones géographiques personnalisées.
Les cartes choroplèthes colorient les régions géographiques en fonction de valeurs numériques ou de proportions, facilitant l’analyse spatiale et la compréhension des variations géographiques. Elles sont couramment utilisées pour des données socio-économiques, de santé publique, ou des analyses environnementales.
Les cartes de proportions sont similaires mais mettent davantage l’accent sur les ratios ou proportions par rapport à une valeur totale, comme des pourcentages ou des fractions de populations.
Une zone géographique est souvent représentée par un polygone, une forme géométrique fermée qui peut avoir plusieurs côtés. Par exemple, une commune ou un département sur une carte peut être représentée comme un polygone.
Ce sont un format de fichier standard pour stocker des informations géospatiales, y compris les coordonnées de points, de lignes et de polygones. Ils peuvent contenir les géométries des entités géographiques ainsi que leurs attributs (valeurs associées à chaque région, comme le revenu moyen ou le taux de chômage).
Les coordonnées (latitude et longitude) permettent de positionner ces polygones sur une carte. En R, on utilise des systèmes de coordonnées géographiques et projetées pour gérer et visualiser ces données.
Plusieurs pakages permettent de visualiser les données avec les cartes, ici nous interessons aux packages glue et sf.
Supposons que nous menions une étude au Burkina-Faso. Par exemple, nous mésurer des indicateurs tels que le taux de mortalité, la couverture sanitaire etc … Le Burkina Faso est un pays qui compte 13 regions, mais notre etude s’étend seulement sur 8 regions. Il convient de montrer toutes les regions, puis de mettre en exègue celles qui nous concernent.
voir/cacher le code
Charger les fichier shapefiles :
Definir la zone d’étude : les fichier shapefile devient comme un dataframe, donc est manipulable au même titre que les fichiers excel, csv etc …
On trace d’abord la carte du pays, ensuite on ajoute la couche des regions (c’est-à-dire le shapefile des regions). On pourrait le faire simplement avec le shapefile des regions sans celui du pays.
Ensuite on ajoute la couleur pour la zone concernée et les noms des regions sélectionnées avec
geom_sf_textannotation_scalepermet d’ajouter une barre d’échelle (scale bar) à une carte avec la position br pour dire bottom rigth (en bas à droite)annotation_north_arrowest utilisée pour ajouter une flèche du nord sur une carte créée avec ggplot2Pour le reste il s’agit des fonctions qu’on utilise couramment avec ggplot2
Afficher/Masquer le tableau
Les cartes choroplèthes sont des représentations graphiques qui utilisent des nuances de couleurs pour illustrer des données quantitatives ou qualitatives sur des zones géographiques. Chaque zone est remplie d’une couleur qui correspond à une valeur spécifique ou à une plage de valeurs, facilitant ainsi l’analyse des variations spatiales des données.
Les cartes choroplèthes sont idéales pour représenter des indicateurs comme le taux de mortalité, le revenu moyen, l’accès à l’eau potable, ou encore la couverture sanitaire par région.
Exemple de carte choroplèthe
Dans cet exemple, nous allons créer une carte choroplèthe montrant la couverture sanitaire par région au Burkina Faso, en utilisant les données fictives créées plus haut. pour les données, vous pouvez me contacter par email.
Ici nous nous assurons que les shapefiles des régions et les données sont correctement chargés et liés entre eux. Pour cela on fait une jointure externe.
Avant de passer à l’étape 2, affichons les données générées avant jointure et ceux aprés jointures.
Afficher/cacher le code
Afficher/Masquer le tableau
Les 10 premières lignes des tables
Utilisez
ggplot2etgeom_sf()pour afficher les régions et les colorer en fonction de la couverture sanitaire.Ajoutons une barre d’échelle et une flèche du nord pour rendre la carte plus informative.
Examinez la carte générée et répondez aux questions suivantes : - Quelles régions ont la meilleure couverture sanitaire ? - Quelles régions doivent faire l’objet d’une attention particulière pour améliorer les conditions de vie ?
Extensions possibles
scale_fill_brewer()ouscale_fill_manual()etc ….Il se peut qu’il n’y ait pas une variabilité importante dans les données dans ce cas, au lieu d’avoir une palette, nous aurons juste des cases de couleurs comme s’agissait d’un indicateur discrèt. Dans ce cas, recoder juste cet indicateur en un indicateur qualitatif (regrouper par classe) et ensuite utiliser
scale_fill_manual()pour definir vos couleurs manuellement ou laisser R le faire tout seul. Le graphique ci-dessous en est un exemple.[Exemple de carte avec un indicateur recodé : Indisponible pour l’instant]
Retour à la page d’accueuil