Skip to content

Commit

Permalink
Merge pull request #28 from MTES-MCT/27-exos-depuis-savoirfr
Browse files Browse the repository at this point in the history
Migration des exos (à partir de savoirfR)
  • Loading branch information
jengelaere authored Dec 8, 2023
2 parents 31e42f7 + 86adeb2 commit 4f0de2f
Show file tree
Hide file tree
Showing 34 changed files with 516 additions and 2,917 deletions.
1 change: 0 additions & 1 deletion .Rprofile

This file was deleted.

32 changes: 16 additions & 16 deletions .github/workflows/bookdown-build-and-deploy.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
name: Déploiement de parcours_r_module_datavisualisation

on:
push:
branches:
- main
- master

workflow_dispatch:

jobs:
build-and-deploy-bookdown:
name: Build and bookdown
uses: MTES-MCT/parcours-r/.github/workflows/bookdown-build-and-deploy.yml@master
with:
r_version: '4.0.4'
name: Déploiement de parcours_r_module_datavisualisation

on:
push:
branches:
- main
- master
workflow_dispatch:

jobs:
build-and-deploy-bookdown:
name: Build and bookdown
uses: MTES-MCT/parcours-r/.github/workflows/bookdown-build-and-deploy.yml@master
with:
r_version: '4.2.2'

30 changes: 15 additions & 15 deletions .github/workflows/bookdown-build.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
name: Test compilation de parcours_r_module_datavisualisation

on:
pull_request:
branches: [main, master, dev]
types: [opened, synchronize]

workflow_dispatch:

jobs:
build-bookdown:
name: Build bookdown
uses: MTES-MCT/parcours-r/.github/workflows/bookdown-build.yml@master
with:
r_version: '4.0.4'
name: Test compilation de parcours_r_module_datavisualisation

on:
pull_request:
branches: [main, master, dev]
types: [opened, synchronize]

workflow_dispatch:

jobs:
build-bookdown:
name: Build bookdown
uses: MTES-MCT/parcours-r/.github/workflows/bookdown-build-from-desc.yml@master
with:
r_version: '4.2.2'
88 changes: 0 additions & 88 deletions .github/workflows/deploy_bookdown.yml

This file was deleted.

6 changes: 4 additions & 2 deletions .github/workflows/rstudio-image-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,23 @@ on:
branches:
- main
- master
- dev
paths:
- .github/workflows/rstudio-image-build.yml
- Dockerfile
- renv.lock
- DESCRIPTION

pull_request:
types: [opened, synchronize]
branches: [main, master, dev]
paths:
- .github/workflows/rstudio-image-build.yml
- Dockerfile
- renv.lock
- DESCRIPTION

workflow_dispatch:

jobs:
build-rstudio-image:
uses: MTES-MCT/parcours-r/.github/workflows/rstudio-image-build.yml@master

7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,9 @@
_book
_bookdown_files
_book.zip
montableau.png
montableau.png
Valorisation**
extdata/Carte_EPCI_France.RData
extdata/ODD.RData
extdata/rpls_aggrege.RData
extdata/rpls_aggrege_large.RData
39 changes: 4 additions & 35 deletions 01b-get_started.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -2,41 +2,10 @@

## Créer un projet sous Rstudio pour vous permettre de recencer vos travaux.

Pourquoi travailler avec les projets Rstudio plutôt que les scripts R ?

- Cela permet la portabilité : le répertoire de travail par défaut d'un projet est le répertoire où est ce projet. Si vous transmettez celui-ci à un collègue, le fait de lancer un programme ne dépend pas de l'arborescence de votre machine.

> **Fini les `setwd("chemin/qui/marche/uniquement/sur/mon/poste")` !**

- Toujours sur la portabilité, un projet peut être utilisé avec un outil comme `renv` qui va vous intégrer en interne au projet l'ensemble des packages nécessaires au projet. Cela permet donc à votre collègue à qui vous passez votre projet de ne pas avoir à les installer et, surtout, si vous mettez à jour votre environnement R, votre projet restera toujours avec les versions des packages avec lesquelles vous avez fait tourner votre projet à l'époque. Cela évite d'avoir à subir les effets d'une mise à jour importante d'un package qui casserait votre code.

Pour activer `renv` sur un projet, il faut l'installer avec `install.packages("renv")`.
Pour intialiser la sauvegarde des packages employés dans le projet, il faut utiliser
`renv::init()`
Les packages chargés dans le projet sont enregistrés dans un sous-dossier dédié.
En cours de travail sur le projet, la commande `renv::snapshot()` permet de faire une sauvegarde, la commande `renv::restore()` permet de charger la dernière sauvegarde.

[En savoir plus sur renv](https://blog.rstudio.com/2019/11/06/renv-project-environments-for-r/)



- Cela permet de se forcer à travailler en mode projet : on intègre à un seul endroit tout ce qui est lié à un projet : données brutes, données retravaillées, scripts, illustrations, documentations, publications... et donc y compris les packages avec `renv`.

- On peut travailler sur plusieurs projets en même temps, Rstudio ouvre autant de sessions que de projet dans ce cas.

- Les projets Rstudio intègrent une interface avec les outils de gestion de version git et svn. Cela veut dire que vous pouvez versionner votre projet et l'héberger simplement comme répertoire sur des plateformes de gestion de code telle que github ou gitlab.

**Pour créer un projet : **

- Cliquez sur *Project* en haut à droite puis *New Project*.

![](images/creerprojet1.png){#id .class width=500}

- Cliquez sur *New Directory*.

![](images/creerprojet2.png){#id .class width=500}

```{r collecte prez projet rstudio, warning=FALSE, echo=FALSE, results='asis'}
# Utilisation du chapitre de présentation des projets RStudio présent dans https://github.com/MTES-MCT/parcours-r
cat(text = stringi::stri_read_lines("https://raw.githubusercontent.com/MTES-MCT/parcours-r/master/parties_communes/bien_commencer.Rmd", encoding = "UTF-8"), sep = '\n')
```

## Intégrer vos données

Expand Down
25 changes: 4 additions & 21 deletions 03-l-aesthetic.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -57,25 +57,8 @@ Pour plus d'informations: https://github.com/daattali/colourpicker.

## Exercice 1

> A partir des données de la table rpls_aggrege_large (dans extdata/rpls_aggrege_large.RData),
>
> créer un nuage de point (un point par EPCI, filtre sur la variable TypeZone) entre :
>
> - le % de parc social de moins de 5 ans ('Parc_de_moins_de_5_ans_pourcent');
>
> - et le pourcentage de logement avec un DPE ges de classe A, B ou C ('DPE_GES_classe_ABC_pourcent');
>
> - et une couleur différente pour distinguer les epci de la région PDL (booléen 'epci_2017_52').
Le résultat attendu :

```{r eval=T,echo=F,warning=F}
ggplot(data = rpls_aggrege_large %>%
filter(TypeZone == "Epci")) +
geom_point(aes(x = Parc_de_moins_de_5_ans_pourcent,
y = DPE_GES_classe_ABC_pourcent,
color = epci_2017_52),
alpha = .5,
size = .5
)
```{r mod5_exo1, child=charge_exo('m5', 'exo1.rmd'), echo=FALSE}
```


8 changes: 6 additions & 2 deletions 04-les-formes-geometriques.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

Pour spécifier le type de représentation que l'on souhaite, il faut utiliser les fonctions de la forme **geom_XX**

Le tableau ci-dessous présente quelques représentations graphiques classiques.
Il en existe un grand nombre que l'on peut retrouver grâce à l'aide
Le tableau ci-dessous présente quelques représentations graphiques classiques.
Il en existe un grand nombre que l'on peut retrouver grâce à l'aide.

```{r fg4_1, echo=T,eval=F,warning = FALSE,message = FALSE}
help.search("^geom_", package = "ggplot2")
Expand All @@ -19,6 +19,10 @@ geom_histogram() | Histogramme | x, fill, linetype, color, alpha, size, weight
geom_boxplot() | Boîte à moustaches | x, alpha, colour, fill, group, linetype, shape, size, weight
geom_density() | Courbe de densité | x, y, alpha, color, fill, linetype, size, weight

La feuille de triche de `{ggplot2}` peut aider aussi à avoir une idée du geom qu'on cherche.

![Feuille de triche ggplot2](images/cheat_sheet_ggplot2.png "Accéder à la feuille de triche ggplot2 depuis RStudio"){#id .class width=716}

Il y a deux types de diagramme en barres : `geom_bar()` et `geom_col()`.
`geom_bar()` ne prend pas de variable `y` dans le mapping, la hauteur des barres est proportionnelle à l'occurrence de chaque modalité de `x`. On peut pondérer chaque occurrence de `x` par une autre variable à indiquer au niveau du paramètre `weight`.

Expand Down
70 changes: 35 additions & 35 deletions 06-l-habillage-simple.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ Chaque nouvel élément graphique est à rajouter sous forme de layer. Ici, nous
```{r fg6_1, echo=T,eval=T,fig.height=5,fig.width=10}
ggplot(ODD_graphique1) +
geom_point(aes(x = log(Gross_Domestic_Product_GDP),
y = log(Maternal_mortality_ratio),
color = Continent)) +
y = log(Maternal_mortality_ratio),
color = Continent)) +
labs(title = "Mortalité maternelle en fonction du PIB par habitant",
subtitle = "En 2015",
x = "PIB",
y = "Taux de mortalité de la mère \n(pour 100 000 naissances)",
color = "Les continents",
caption = "Source : ODD / ONU")
subtitle = "En 2015",
x = "PIB",
y = "Taux de mortalité de la mère \n(pour 100 000 naissances)",
color = "Les continents",
caption = "Source : ODD / ONU")
```

À noter qu'il existe plusieurs autres façons de spécifier ces éléments par des couches spécifiques: `ggtitle`, `xlab`, `ylab`,...
Expand All @@ -27,19 +27,19 @@ Les guides peuvent être spécifiés dans chaque scale_* ou dans une instruction
```{r fg6_2, echo=T,eval=T,fig.height=5,fig.width=10}
ggplot(ODD_graphique1) +
geom_point(aes(x = log(Gross_Domestic_Product_GDP),
y = log(Maternal_mortality_ratio),
color = Continent)) +
y = log(Maternal_mortality_ratio),
color = Continent)) +
labs(title = "Mortalité maternelle en fonction du PIB par habitant",
subtitle = "En 2015",
x = "PIB",
y = "Taux de mortalité de la mère \n(pour 100 000 naissances)",
caption = "Source : ODD / ONU") +
subtitle = "En 2015",
x = "PIB",
y = "Taux de mortalité de la mère \n(pour 100 000 naissances)",
caption = "Source : ODD / ONU") +
guides(color = guide_legend(direction = "horizontal",
order = 1,
title.position = "top",
title.hjust = 0.5,
nrow = 1,
label.position = "bottom")) +
order = 1,
title.position = "top",
title.hjust = 0.5,
nrow = 1,
label.position = "bottom")) +
theme(legend.position = "bottom")
```

Expand All @@ -51,26 +51,26 @@ Il est aussi possible de rajouter des annotations de type texte ou autre, par ex
ggplot(ODD_graphique1) +
geom_point(aes(x = log(Gross_Domestic_Product_GDP),
y = log(Maternal_mortality_ratio),
color = Continent)) +
y = log(Maternal_mortality_ratio),
color = Continent)) +
labs(title = "Mortalité maternelle en fonction du PIB par habitant",
subtitle = "En 2015",
x = "PIB",
y = "Taux de mortalité de la mère \n(pour 100 000 naissances)",
caption = "Source : ODD / ONU") +
subtitle = "En 2015",
x = "PIB",
y = "Taux de mortalité de la mère \n(pour 100 000 naissances)",
caption = "Source : ODD / ONU") +
annotate("label",
x = 11,
y = 6.5,
size = 3,
label = "882 décès \npour 100 000 naissances \nen République centrafricaine",
color = "white",
fill = "red") +
x = 11,
y = 6.5,
size = 3,
label = "882 décès \npour 100 000 naissances \nen République centrafricaine",
color = "white",
fill = "red") +
annotate("curve",
xend = log(333.1885), yend = log(882),
x = 10.2, y = 6.5,
curvature = -0.1,
color = "red",
arrow = arrow(length = unit(2, "mm"))
xend = log(333.1885), yend = log(882),
x = 10.2, y = 6.5,
curvature = -0.1,
color = "red",
arrow = arrow(length = unit(2, "mm"))
) +
theme(legend.position = "bottom")
```
Expand Down
Loading

0 comments on commit 4f0de2f

Please sign in to comment.