Carte choroplèthe
Maintenant que vous savez tracer des polygones, plaçons-les sur une carte. Rappelez-vous : vous remplacez votre appel à ggplot() par un appel à ggmap(), et l'appel original à ggplot() est passé à l'argument base_layer(). Ensuite, vous ajoutez votre couche de polygones comme d'habitude :
ggmap(corvallis_map_bw,
base_layer = ggplot(ward_sales,
aes(lon, lat))) +
geom_polygon(aes(group = group, fill = ward))
Essayez-le maintenant dans la console !
Oups, quelque chose cloche. Les districts 1, 3 et 8 ont l'air irréguliers et incorrects. Que s'est-il passé ? Une partie des limites des districts dépasse les limites de la carte. En raison des paramètres par défaut de ggmap(), toute donnée en dehors de la carte est ignorée avant le traçage ; ainsi, certaines frontières de polygones sont supprimées et, lorsque les points restants sont reliés, vous obtenez de mauvaises formes.
Pas d'inquiétude, il y a une solution : ggmap() offre des arguments pour contrôler ce comportement. Les arguments extent = "normal" et maprange = FALSE forcent le graphique à utiliser l'étendue des données plutôt que celle de la carte pour définir les limites d'affichage.
Cette activité fait partie du cours
Visualiser des données géospatiales avec R
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Fix the polygon cropping
ggmap(corvallis_map_bw,
base_layer = ggplot(ward_sales, aes(lon, lat))) +
geom_polygon(aes(group = group, fill = ward))