-
Notifications
You must be signed in to change notification settings - Fork 4
/
15-Ressources.Rmd
185 lines (136 loc) · 6.9 KB
/
15-Ressources.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
# (PART) Ressources et correction {-}
# Ressources
Quelques ressources de références
## 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/
## 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
## 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 :
### Cartographie avec tmap
#### 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 les `geom_xx()` : les `tm_xx()` inclut la définition des *classes* (nombre de classes, définition des classes et des palettes) sans passer par une fonction `scale()` dont l'équivalent n'existe pas.
La mise en page se définit avec la fonction `tm_layout()`, la légende avec `tm_legend()`.
#### Exemple de carte choroplèthe
```{r cart_8, echo=T,eval=T,fig.height=5,fig.width=12}
data("World")
tt <- World %>%
rename(Country_or_Area_Code = iso_a3) %>%
inner_join(ODD_indicateur311 %>%
filter(Age_group == "All age ranges or no breakdown by age",
Sex == "Both sexes or no breakdown by sex",
Type_Zone == "Pays",
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.
```{r cart_9, echo=T,eval=T,fig.height=5,fig.width=12}
tm_shape(tt %>% filter(Year == 2015)) +
tm_polygons("Value", n = 2)
```
#### Exemple de carte à ronds proportionnels
```{r cart_10, echo=T,eval=T,fig.height=5,fig.width=12}
tm_shape(tt %>% filter(Year == 2015)) +
tm_polygons() +
tm_bubbles(size = "Value", col = "Value")
```
#### Exemples de cartes avec facet
```{r cart_11, echo=T,eval=T,fig.height=5,fig.width=8}
tm_shape(tt) +
tm_polygons("Value") +
tm_facets(by = "Year")
```
```{r cart_12, echo=T,eval=T,fig.height=5,fig.width=8}
tm_shape(tt %>% filter(Year == 2015)) +
tm_polygons("Value") +
tm_facets("Continent")
```
#### 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*.
```{r cart_13, echo=T,eval=T,fig.height=5,fig.width=8}
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() :
```{r cart_14, echo=T,eval=T,fig.height=5,fig.width=8}
tm_shape(tt %>% filter(Year == 2015)) +
tm_polygons("Value", palette = viridis(5, alpha = 1, begin = 0, end = 1, direction = 1, option = "D"))
```
#### 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.
```{r cart_15, echo=T,eval=T,fig.height=5,fig.width=8}
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.
```{r cart_16, echo=T,eval=T,fig.height=5,fig.width=8}
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))
```
#### Export d'un graphique
La fonction `tmap_save()` permet d'exporter une carte tmap en un fichier image.
```{r cart_17, echo=T,eval=F,fig.height=5,fig.width=8}
carte <- 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))
tmap_save(carte, filename = "figures/Taux de mortalité de la mère dans le monde.png")
```
## ggiraph
- La documentation du module : https://davidgohel.github.io/ggiraph/index.html
## apexcharter
- Le site web du module : https://dreamrs.github.io/apexcharter/index.html
## 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