Chapitre 17 Ressources
Quelques ressources de références
17.1 dataviz
- Dataviz project : http://datavizproject.com
- From data to viz : https://www.data-to-viz.com/
- Dundamentals of datavisualisation : http://serialmentor.com/dataviz/
- Datavizualisation - a practical introduction : http://socviz.co/
17.2 ggplot2
- La documentation du module : http://ggplot2.tidyverse.org/reference/
- Cheatsheet : https://github.com/rstudio/cheatsheets/raw/master/data-visualization-2.1.pdf
- Top 50 ggplot2 visualisations : http://r-statistics.co/Top50-Ggplot2-Visualizations-MasterList-R-Code.html
17.3 tmap
- La vignette du package Tmap : https://cran.r-project.org/web/packages/tmap/vignettes/tmap-getstarted.html
Il y a quelques années, {tmap}
était le package de cartographie le plus courant. Il a depuis était supplanté par {ggplot2}
.
Voici ce que proposait le support de formation de parcours-r à son sujet :
17.3.1 Cartographie avec tmap
17.3.1.1 Les cartes avec Tmap
Tmap
est un package dédié à la réalisation de cartes sous R. La syntaxe est très proche de ggplot, avec l’opérateur +
pour enchaîner les options.
L’équivalent des geom_xx()
dans tmap sont les fonctions suivantes :
tm_lines()
: afficher des lignes
tm_polygons()
: afficher des polygones
tm_raster()
: afficher un raster
tm_bubbles()
: afficher des ronds proportionnels
tm_markers()
: afficher des marqueurs
tm_text()
: afficher du texte
Pour charger une donnée géométrique, il faut utiliser la fonction *tm_shape()
.
Les différences :
Les variables s’appellent avec des cotes “”
Le facetting peut se faire sur un format de données large (une carte par colonne et non une carte par modalité d’une variable)
La grande différence entre les
tm_xx()
et lesgeom_xx()
: lestm_xx()
inclut la définition des classes (nombre de classes, définition des classes et des palettes) sans passer par une fonctionscale()
dont l’équivalent n’existe pas.
La mise en page se définit avec la fonction tm_layout()
, la légende avec tm_legend()
.
17.3.1.2 Exemple de carte choroplèthe
data("World")
<- World %>%
tt rename(Country_or_Area_Code = iso_a3) %>%
inner_join(ODD_indicateur311 %>%
filter(Age_group == "All age ranges or no breakdown by age",
== "Both sexes or no breakdown by sex",
Sex == "Pays",
Type_Zone is.na(Value_type)) %>%
filter(!is.na(Value)),
by = "Country_or_Area_Code")
tm_shape(tt %>% filter(Year == 2015)) +
tm_polygons("Value")
L’option n=
permet de sélectionner le nombre de classes souhaitées, lorsque l’on réalise une carte sur une variable continue.
tm_shape(tt %>% filter(Year == 2015)) +
tm_polygons("Value", n = 2)
17.3.1.3 Exemple de carte à ronds proportionnels
tm_shape(tt %>% filter(Year == 2015)) +
tm_polygons() +
tm_bubbles(size = "Value", col = "Value")
17.3.1.4 Exemples de cartes avec facet
tm_shape(tt) +
tm_polygons("Value") +
tm_facets(by = "Year")
tm_shape(tt %>% filter(Year == 2015)) +
tm_polygons("Value") +
tm_facets("Continent")
17.3.1.5 Gestion des palettes
La fonction tmaptools::palette_explorer() permet d’accéder à une interface très simple de définition d’une palette de couleurs à partir des palettes brewer.
tm_shape(tt %>% filter(Year == 2015)) +
tm_polygons("Value", palette = get_brewer_pal("OrRd", n = 5, contrast = c(0.2, 1)))
On peut également utiliser n’importe quelle palette. Par exemple, la palette viridis, mais sans l’interface proposée par palette_explorer() :
tm_shape(tt %>% filter(Year == 2015)) +
tm_polygons("Value", palette = viridis(5, alpha = 1, begin = 0, end = 1, direction = 1, option = "D"))
17.3.1.6 La mise en page
tm_layout() permet de contrôler les polices, la légende, les marges, les couleurs.
L’option design.mode=T
permet de voir visuellement les marges, la position de la légende.
Le titre de la légende ne se définit pas dans tm_layout()
, mais dans tm_polygons()
. L’option title
de ces fonctions est l’équivalent d’un libellé de la variable mise dans l’aesthetic.
tm_shape(tt %>% filter(Year == 2015)) +
tm_polygons("Value", palette = viridis(5, alpha = 1, begin = 0, end = 1, direction = 1, option = "D"),
title = "Taux de mortalité de la mère \n(pour 100 000 naissances)") +
tm_layout(main.title = "Taux de mortalité de la mère \n(pour 100 000 naissances) dans le monde",
main.title.size = 1.2,
outer.margins = c(0, 0, 0, 0),
legend.position = c("left", "bottom"),
legend.outside = F,
main.title.position = "center",
inner.margins = c(0, 0, 0, 0))
Avec les cartes en ronds proportionnels, on peut spécifier un titre pour la couleur et la taille du rond.
tm_shape(tt %>% filter(Year == 2015)) +
tm_polygons() +
tm_bubbles(size = "Value", col = "Value",
palette = viridis(5, alpha = 1, begin = 0, end = 1, direction = 1, option = "D"),
title.col = "",
title.size = "Taux de mortalité de la mère \n(pour 100 000 naissances)") +
tm_layout(main.title = "Taux de mortalité de la mère \n(pour 100 000 naissances) dans le monde",
main.title.size = 1.2,
outer.margins = c(0, 0, 0, 0),
legend.position = c("left", "bottom"),
legend.outside = F,
main.title.position = "center",
inner.margins = c(0, 0, 0, 0))
17.3.1.7 Export d’un graphique
La fonction tmap_save()
permet d’exporter une carte tmap en un fichier image.
<- tm_shape(tt %>% filter(Year == 2015)) +
carte tm_polygons() +
tm_bubbles(size = "Value", col = "Value",
palette = viridis(5, alpha = 1, begin = 0, end = 1, direction = 1, option = "D"),
title.col = "",
title.size = "Taux de mortalité de la mère \n(pour 100 000 naissances)") +
tm_layout(main.title = "Taux de mortalité de la mère \n(pour 100 000 naissances) dans le monde",
main.title.size = 1.2,
outer.margins = c(0, 0, 0, 0),
legend.position = c("left", "bottom"),
legend.outside = F,
main.title.position = "center",
inner.margins = c(0, 0, 0, 0))
tmap_save(carte, filename = "figures/Taux de mortalité de la mère dans le monde.png")
17.4 ggiraph
- La documentation du module : https://davidgohel.github.io/ggiraph/index.html
17.5 apexcharter
- Le site web du module : https://dreamrs.github.io/apexcharter/index.html
17.6 kable et kableExtra
- Créer de super tableaux avec kabble et kableExtra : https://cran.r-project.org/web/packages/kableExtra/vignettes/awesome_table_in_html.html