CommencezCommencez gratuitement

Construire un graphique par couches

Maintenant que vous en savez un peu plus sur tmap(), reprenons votre graphique précédent sur la population en l'assemblant par couches et en y apportant quelques ajustements pour l'améliorer. Vous commencez par une couche tm_shape() qui précise les données à utiliser, puis vous ajoutez une couche tm_fill() pour colorer vos polygones à l'aide de la variable population :

tm_shape(countries_spdf) +
  tm_fill(col = "population") 

Le principal problème du graphique obtenu est que l'échelle de couleurs n'est pas très parlante : la première couleur (un jaune très pâle) regroupe tous les pays dont la population est inférieure à 200 millions ! Comme l'échelle de couleurs est liée à la couche tm_fill(), les ajustements de cette échelle se font dans cet appel. Vous en apprendrez beaucoup plus sur la couleur au chapitre 3, mais pour l'instant, sachez que l'argument style contrôle la façon dont les seuils sont choisis.

Votre graphique a aussi besoin de contours de pays. Vous pouvez ajouter une couche tm_borders() pour cela, mais évitons de les rendre trop dominants visuellement. Un brun pourrait bien convenir.

L'avantage d'utiliser des objets spatiaux devient vraiment évident lorsque vous changez le type de graphique. Essayons aussi un nuage de bulles où la taille des bulles correspond à la population. Avec ggplot2, cela exigerait beaucoup de remodelage de vos données. Avec tmap, il suffit de remplacer une couche.

Cette activité fait partie du cours

Visualiser des données géospatiales avec R

Voir le cours

Instructions de l’exercice

  • Ajoutez style = "quantile" à tm_fill(). Cela choisit les seuils de l'échelle de couleurs en fonction d'un nombre égal d'observations dans chaque intervalle.
  • Au même graphique, ajoutez une couche tm_borders() avec col = "burlywood4".
  • Créez un nouveau graphique identique au premier, mais au lieu de tm_fill(), ajoutez une couche tm_bubbles() avec size associé à la population.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

library(sp)
library(tmap)

# Add style argument to the tm_fill() call
tm_shape(countries_spdf) +
  tm_fill(col = "population") +
  # Add a tm_borders() layer 
  

# New plot, with tm_bubbles() instead of tm_fill()
Modifier et exécuter le code