-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy path08-les-scales.Rmd
159 lines (113 loc) · 5.29 KB
/
08-les-scales.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
# Les scales
## Les fonctions
Les fonctions **scale** permettent globalement de paramétrer les éléments rentrés dans l'aesthétic :
- Si je veux un gradient de couleur fonction d'une variable continue : quelle palette de couleur je choisis, comment je cale mon dégradé en fonction de cette variable continue ?
- Si je mets une variable continue en ordonnée, comment je définis le minimum et maximum de cet axe, sa position, les valeurs que j'affiche sur l'échelle...
L'ensemble des scales possibles peuvent se décrire sous la forme suivante:
`scale_xx_yy`
où `xx` peut être un des paramètres de l'aesthétic :
xx|description
-----------------|---
alpha|transparence
color|couleur des lignes ou des points
fill|couleurs des aires
linetype|type de ligne (continue,pointillée,...)
shape|forme des points
size|aire des points
x|variable de l'axe x
y|variable de l'axe y
Et `yy` un type de paramétrage :
yy|description
-----------------|--------------------------
continuous|gérer les variables continue
discrete|gérer les variables discrètes
date|gérer une variable au format date
reverse|inverser l'axe
log|convertir l'échelle d'une variable continue en échelle logarithmique
log10|convertir l'échelle d'une variable continue en échelle logarithmique décimale
viridis|utiliser une palette de couleur viridis
brewer|utiliser une palette de couleur brewer (variable discrète)
distiller|utiliser une palette de couleur brewer (variable continue)
gradient|utiliser un gradient de 2 couleurs
gradient2|utiliser un gradient divergent de 3 couleurs
manual|utiliser une palette de couleur via un vecteur défini par l'utilisateur
identity|utiliser telle quelle une variable du dataframe pour élaborer l'échelle (variable comprise entre 0 et 1 pour la transparence, variable de nom de couleurs...)
```{r, echo=T,eval=T,fig.height=3.5}
gg <- ggplot(ODD_graphique1) +
geom_point(aes(x = log(Gross_Domestic_Product_GDP),
y = log(Maternal_mortality_ratio),
color = Continent))
gg +
scale_color_brewer(type = "qual")
# Pour visualiser les palettes disponibles
# RColorBrewer::display.brewer.all()
```
Par exemple on peut exploiter une fonction scale pour définir une échelle logarithmique sur un axe.
```{r, echo=T,eval=T,fig.height=3.5}
ggplot(ODD_graphique1) +
geom_point(aes(x = Gross_Domestic_Product_GDP,
y = Maternal_mortality_ratio,
color = Continent)) +
scale_color_brewer(type = "qual") +
scale_x_log10() +
scale_y_log10()
```
L'instruction `limits` permet de forcer les bornes maximum et minimum. Elle prend en valeur un vecteur des deux bornes souhaitées.
```{r, echo=T,eval=T,fig.height=3.5}
gg +
scale_y_continuous(limits = c(NA, 10))
```
En mettant la borne minimum/maximum à NA permet de conserver la valeur minimum/maximum par défaut.
Les fonctions scale_xx_identity permettent d'utiliser telle quelle une variable créée spécifiquement pour la visualisation.
```{r identity}
ODD_graphique2 %>%
mutate(couleur = if_else(Year != 2015, "black", "red")) %>%
ggplot(mapping = aes(x = Year, y = Value, color = couleur)) +
geom_point() +
scale_color_identity()
```
## Scales - package gouvdown
La fonction [scale_color_gouv_discrete()](https://spyrales.github.io/gouvdown/reference/scale_color_gouv_discrete.html) du package `gouvdown` permet d'utiliser les palettes de couleurs de ce package.
Il en est de même pour `scale_color_gouv_continuous`, `scale_fill_gouv_discrete` et `scale_fill_gouv_continuous`
```{r, echo=T,eval=T,fig.height=3.5}
library(gouvdown)
gg <- ggplot(ODD_graphique1) +
geom_point(aes(x = log(Gross_Domestic_Product_GDP),
y = log(Maternal_mortality_ratio),
color = Continent))
gg + scale_color_gouv_discrete(name = "", palette = "pal_gouv_qual1") +
theme_gouv()
```
On peut récupérer le code hex d'une couleur des palettes de la marque Etat avec la fonction `gouv_colors()`.
```{r gouv_colors}
gouv_colors("r4")
```
![](images/palette.PNG){#id .class width=500}
## Formatage spécifique
- Transformation en pourcentage;
```{r fg8_1, echo=T,eval=F}
scale_y_continuous(labels = scales::percent)
```
- Ajout du séparateur des milliers;
```{r fg8_2, echo=T,eval=F}
scale_y_continuous(labels = function(x) format(x, big.mark = " ", scientific = FALSE))
```
- Ajout du symbole €;
```{r fg8_3, echo=T,eval=F}
scale_y_continuous(labels = function(x) paste(x, " €"))
```
- Formatage des axes dates
`scales_x_date()` et `scales_y_date()` vous permettent de modifier le formatage de vos axes dates. Deux paramètres important vous seront utiles sur ces axes, `date_labels` et `date_breaks` modifient respectivement le libellé des dates et pas de temps qui défini les grilles.
Ici nous modifions le pas des date à 3 mois et mettons le libellé sous un format avec le nom du mois abrégé et l'année en 4 chiffres. Pour connaître toutes les écritures possibles d'une date, vous pouvez consulter [cette page](https://stat.ethz.ch/R-manual/R-devel/library/base/html/strptime.html).
```{r fg8_4, echo=T,eval=F}
scale_x_date(date_breaks = "3 months",
date_labels = "%b %Y")
```
- Formatage du point de départ des axes : x = 0, y = 0
```{r scale expand, echo=TRUE, eval=FALSE}
scale_x_continuous(expand = c(0, 0))
scale_y_continuous(expand = c(0, 0))
```
## Exercice 3
```{r mod5_exo3, child=charge_exo('m5', 'exo3.rmd'), echo=FALSE}
```