CommencerCommencer gratuitement

Construire un graphique par couches

Maintenant que vous en savez un peu plus sur tmap(), construisons votre précédent graphique de la population par couches et apportons quelques ajustements pour l’améliorer. Vous commencez par une couche tm_shape() qui définit 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 sans doute que l’échelle de couleurs n’est pas très parlante : la première couleur (jaune très pâle) regroupe tous les pays de moins de 200 millions d’habitants ! Comme l’échelle de couleurs est associé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 manière dont les classes sont choisies.

Votre carte a également besoin de contours de pays. Vous pouvez ajouter une couche tm_borders() pour cela, mais évitons qu’ils ne soient trop marqués visuellement. Un brun pourrait convenir.

L’intérêt d’utiliser des objets spatiaux apparaît clairement lorsque vous changez le type de graphique. Essayons aussi un graphique à bulles où la taille des bulles correspond à la population. Avec ggplot2, cela exigerait beaucoup de remaniement des données. Avec tmap, il suffit de remplacer une couche.

Cet exercice fait partie du cours

Visualiser des données géospatiales avec R

Afficher le cours

Instructions

  • Ajoutez style = "quantile" à tm_fill(). Cela choisit les classes de l’échelle de couleurs en se basant sur un nombre égal d’observations dans chaque intervalle.
  • Sur le 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 mappé à la population.

Exercice interactif pratique

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

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