Antoine Neuraz 5 лет назад
Родитель
Сommit
4d8dc449fb
3 измененных файлов: 117 добавлений и 9 удалений
  1. +77
    -5
      98-techniques_avancees.Rmd
  2. +10
    -2
      index.Rmd
  3. +30
    -2
      packages.bib

+ 77
- 5
98-techniques_avancees.Rmd Просмотреть файл

@@ -169,8 +169,7 @@ p <- generate_uniform_dataset(
ggplot(data = ., aes( x = x, y = y, color = group)) +
geom_point(size = 3) +
scale_color_material_d() +
labs(title= "theme_minimal()",
x="legende axe x",
labs(x="legende axe x",
y="legende axe y")
```

@@ -179,13 +178,86 @@ p
```

```{r, echo=TRUE}
p + theme_minimal()
p + theme_minimal() + labs(title= "theme_minimal")
```

```{r, echo=TRUE}
p + my_theme()
p + my_theme() + labs(title= "my_theme")
```

```{r,echo=TRUE}
p + my_theme_dark()
p + my_theme_dark() + labs(title= "my_theme_dark")
```


## Utiliser `ggplot2` dans des fonctions

Pour utiliser les syntaxes décrites ici, vous aurez besoin de ggplot2 version >= 3.2.

Prenons l'exemple d'une fonction qui réalise un bar chart (diagramme en barres) pour une colonne données (par exemple `drv`) d'un dataset (par exemple `mpg`, fourni avec `ggplot2`)

Le code pour réaliser ce plot en dehors d'une fonction peut ressembler à ceci :

```{r}
ggplot(mpg) +
geom_bar(aes(x = drv))
```

Dans une fonction, nous voudrions pouvoir utiliser un autre dataset et changer le nom de la variable d'intérêt.

Modifier le nom du dataset ne pose pas de problème, et l'on peut utiliser une syntaxe classique :

```{r, eval = FALSE}

my_bar <- function(df) {
ggplot(df) +
geom_bar(aes(x = drv))
}

my_bar(mpg)

```

Pour rendre modifiable le nom de la colonne, c'est à dire une variable qui est déclarée dans la fonction `aes()`, c'est moins immédiat. L'exemple suivant ne fonctionnera pas :

```{r, eval = FALSE}

my_bar <- function(df, col) {
ggplot(df) +
geom_bar(aes(x = col))
}

my_bar(mpg, drv)

```
```
Erreur : Aesthetics must be valid data columns. Problematic aesthetic(s): x = var. Did you mistype the name of a data column or forget to add stat()?
```

Pour résoudre ce problème, il faut utiliser une syntaxe particulière introduite dans la version 3.2 de ggplot2.
Vous avez 2 solutions:
- le nom de la colonne est passé en paramètre de la fonction comme un nom (c'est à dire sans "", par exemple `drv`), vous devez encadrer le nom de la colonne par des doubles accolades : `{{ col }}`

```{r, eval = FALSE}
my_bar <- function(df, col) {
ggplot(df) +
geom_bar(aes(x = {{ col }}))
}

my_bar(mpg, drv)
```


- le nom de la colonne est passé en paramètre de la fonction comme une chaine de caractère (par exemple: `"drv"`), vous devez utiliser la syntaxe suivante: `.data[[ col ]]`

```{r, eval = FALSE}
my_bar <- function(df, col) {
ggplot(df) +
geom_bar(aes(x = .data[[ col ]] ))
}

my_bar(mpg, "drv")
```




+ 10
- 2
index.Rmd Просмотреть файл

@@ -35,10 +35,18 @@ Dans ce cours, un certain nombre de packages sont utilisés très fréquement et

pkg_list_req = c("tidyverse",
"ggplot2",
"see")
"see",
"igraph",
"ggraph",
"tidygraph",
"rlang")
```
```{r, eval=FALSE}
install.packages(pkg_list_req)

for (pkg in pkg_list_req) {
if (!(pkg %in% installed.packages())) install.packages(pkg)
}

```

Un certain nombre d'autres packages, utilisés plus ponctuellement vous seront indiqués dans les différents chapitres. Voici une liste exhaustive des packages utilisés dans ce cours :


+ 30
- 2
packages.bib Просмотреть файл

@@ -8,11 +8,32 @@
}
@Manual{R-ggplot2,
title = {ggplot2: Create Elegant Data Visualisations Using the Grammar of Graphics},
author = {Hadley Wickham and Winston Chang and Lionel Henry and Thomas Lin Pedersen and Kohske Takahashi and Claus Wilke and Kara Woo},
author = {Hadley Wickham and Winston Chang and Lionel Henry and Thomas Lin Pedersen and Kohske Takahashi and Claus Wilke and Kara Woo and Hiroaki Yutani},
year = {2019},
note = {R package version 3.1.1},
note = {R package version 3.2.0},
url = {https://CRAN.R-project.org/package=ggplot2},
}
@Manual{R-ggraph,
title = {ggraph: An Implementation of Grammar of Graphics for Graphs and Networks},
author = {Thomas Lin Pedersen},
year = {2018},
note = {R package version 1.0.2},
url = {https://CRAN.R-project.org/package=ggraph},
}
@Manual{R-igraph,
title = {igraph: Network Analysis and Visualization},
author = {See AUTHORS file.},
year = {2019},
note = {R package version 1.2.4.1},
url = {https://CRAN.R-project.org/package=igraph},
}
@Manual{R-rlang,
title = {rlang: Functions for Base Types and Core R and 'Tidyverse' Features},
author = {Lionel Henry and Hadley Wickham},
year = {2019},
note = {R package version 0.4.0},
url = {https://CRAN.R-project.org/package=rlang},
}
@Manual{R-see,
title = {see: Visualisation Toolbox for 'easystats' and Extra Geoms, Themes
and Color Palettes for 'ggplot2'},
@@ -21,6 +42,13 @@ and Color Palettes for 'ggplot2'},
note = {R package version 0.1.0},
url = {https://CRAN.R-project.org/package=see},
}
@Manual{R-tidygraph,
title = {tidygraph: A Tidy API for Graph Manipulation},
author = {Thomas Lin Pedersen},
year = {2018},
note = {R package version 1.1.1},
url = {https://CRAN.R-project.org/package=tidygraph},
}
@Manual{R-tidyverse,
title = {tidyverse: Easily Install and Load the 'Tidyverse'},
author = {Hadley Wickham},


Загрузка…
Отмена
Сохранить