-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy path08-graph.Rmd
97 lines (66 loc) · 4.13 KB
/
08-graph.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
# Premiers graphiques
## Package ggplot2
Pour réaliser des graphiques, nous choisissons de nous servir du package `ggplot2`, qui permet de faire de meilleures réalisations que les fonctions basiques. Il est intégré dans le méta-package `tidyverse` donc il n'est pas utile de le re-charger dans notre session. Mais si vous devez le faire, le code est le suivant :
```{r graph_1, eval=FALSE}
install.packages("ggplot2")
library(ggplot2)
library(dplyr)
```
La fonction `ggplot()` fonctionne d'une manière particulière. La structure ressemble à ceci :
```{r graph_2, eval=FALSE}
ggplot(TableEnEntree, aes(VariablesATracer)) + geom_FonctionAChoisir()
```
Pour découvrir les nombreuses possibilités de `ggplot2`, vous pouvez vous référer au [Module 5 : « Valoriser ses données avec R »](https://mtes-mct.github.io/parcours_r_module_datavisualisation/) ou consulter les sites suivants :
- [Version anglaise](http://www.sthda.com/english/wiki/ggplot2-barplots-quick-start-guide-r-software-and-data-visualization)
- [Version française](http://www.sthda.com/french/wiki/ggplot2)
La feuille de triche accessible depuis R Studio rassemble les principales instructions et aide à prendre en main le package :
![](images/cheatsheet_ggplot2.png){width=750px}
La fonction `aes()` (pour "aesthetics"), utilisée dans l'instruction `ggplot()` permet de définir les données à tracer. On y indique les dimensions que l'on veut représenter sur le graphique. On peut représenter jusqu'à 5 dimensions sur un même graphique, mais attention à la lisibilité !
- 2 variables quanti : x en fonction de y $\rightarrow$ 2 dimensions (nuage de points)
- taille du point $\rightarrow$ 3e dimension (quanti)
- couleur des points $\rightarrow$ 4e dimension (quali)
- juxtaposer des graphiques en fonction d'une variable quali $\rightarrow$ 5e dimension !
## Histogramme
Si on désire un histogramme de `log_SUPERF`, on fera appel à la fonction `geom_histogram()`. Ce graphique ne présente qu'une seule dimension (la variable quanti dont on veut visualiser la distribution)
```{r graph_3, message=FALSE, warning=FALSE}
rm(list = ls())
base <- read.csv(file = "extdata/Base_synth_territoires.csv", fileEncoding = 'latin1',
header = T, sep=";", dec=",") %>%
select(1:24) %>%
mutate(log_SUPERF = log(SUPERF),
REG = as.factor(REG),
densite = P14_POP / SUPERF,
tx_natal = 1000 * NAISD15 / P14_POP,
tx_mort = DECESD15 / P14_POP)
ggplot(data = base, mapping = aes(x = log_SUPERF)) + geom_histogram()
```
## Nuages de points
Selon les graphiques que l'on veut tracer, on peut renseigner plusieurs variables. Dans le cas d'un nuage de points, par exemple, on croise 2 variables quantitatives :
```{r graph_4, message=FALSE, warning=FALSE, cache=TRUE}
ggplot(base, aes(x = P14_EMPLT, y = MED13)) + geom_point(colour = "blue")
ggplot(base, aes(x = log(P14_EMPLT), y = log(MED13))) + geom_point(colour = "blue")
```
## Matrice de nuages
Pour explorer son jeu de données, on peut réaliser un nuage de points pour plusieurs croisements de variables possibles. Ici, en conservant quelques variables quantitatives, on peut réaliser un ensemble de graphiques. Cette "matrice" de nuages fonctionne avec le package `GGally`.
```{r ggpairs, message=FALSE, warning=FALSE, cache=TRUE}
# install.packages("GGally")
library("GGally")
num <- select(base, P14_LOGVAC:PIMP13) %>% sample_n(10000) %>% log()
ggpairs(num) ## fonction ggpairs() de GGally
```
## Bonus : faire un graphique "dynamique"
Une fois qu'on a généré un graphique avec ggplot, on peut le passer dans la fonction `ggplotly()` (package `plotly`) qui permet de le rendre dynamique.
```{r ggplotly,message=FALSE,warning=FALSE}
library(plotly)
g <- ggplot(data = base, aes(x = ZAU, fill = ZAU)) +
geom_bar()
ggplotly(g)
```
## Exercice 5 : créer des graphiques
```{r mod1_exo5, child=charge_exo("m1", "exo5.rmd"), echo=FALSE}
```
**Note** : avec les fonctions de base, on peut obtenir de nombreux graphiques avec très peu de code, mais moins jolis :
```{r graph_11}
plot(iris)
```
Des possibilités infinies à approfondir dans [les modules 3 et 5](https://mtes-mct.github.io/parcours-r/) !!