CommencerCommencer gratuitement

Carte choroplèthe

Maintenant que vous savez tracer des polygones, mettons vos polygones sur une carte. Souvenez-vous : vous remplacez votre appel à ggplot() par un appel à ggmap(), et l’appel original à ggplot() devient l’argument de 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 dentelés et incorrects. Que s’est-il passé ? Une partie des limites de districts dépasse les bords de la carte. En raison des paramètres par défaut de ggmap(), toutes les données en dehors de la carte sont supprimées avant l’affichage ; certaines frontières de polygones sont donc ignorées et, lorsque les points restants sont reliés, vous obtenez de mauvaises formes.

Pas d’inquiétude, il existe une solution : ggmap() propose des arguments pour contrôler ce comportement. Les arguments extent = "normal" avec maprange = FALSE obligent le tracé à utiliser l’étendue des données plutôt que celle de la carte pour définir les limites d’affichage.

Cet exercice fait partie du cours

Visualiser des données géospatiales avec R

Afficher le cours

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Fix the polygon cropping
ggmap(corvallis_map_bw, 
      base_layer = ggplot(ward_sales, aes(lon, lat))) +
  geom_polygon(aes(group = group, fill = ward))
Modifier et exécuter le code