Remove old HTML enonce files and rename Rmd files for tp1 and tp2 to tp1.Rmd and tp2.Rmd

This commit is contained in:
2025-11-06 11:18:57 +01:00
parent bd05082e3c
commit 007ca3c12c
4 changed files with 137 additions and 10108 deletions

File diff suppressed because one or more lines are too long

View File

@@ -670,8 +670,8 @@ grid.arrange(p1, p2, p3, p4, p5, p6, p7, p8, ncol = 2)
# Informations de session {.unnumbered}
```{r}
sessionInfo()
```
# Références
:::

File diff suppressed because one or more lines are too long

View File

@@ -32,7 +32,6 @@ knitr::opts_chunk$set(
options(encoding = "UTF-8")
```
```{r, echo = FALSE, fig.keep= 'none'}
# Chargement des librairies graphiques
library(lattice)
@@ -54,11 +53,11 @@ library(cowplot)
# Objectifs du TP
L'objectif de ce TP vise à manipuler et utiliser à bon escient les différents
types de graphiques du package **ggplot2** (et éventuellement des packages
associés).
L'objectif de ce TP vise à manipuler et utiliser à bon escient les
différents types de graphiques du package **ggplot2** (et éventuellement
des packages associés).
---
------------------------------------------------------------------------
# Prérequis
@@ -73,20 +72,19 @@ associés).
Vous pouvez ensuite écrire vos codes soit :
- En ouvrant un nouveau script `.R` ;
- En ouvrant le ouvrant le rapport Rmarkdown `4-td_graphiques - enonce`.
Certains codes sont partiels et sont à compléter (indication `???`).
N'oubliez pas de modifier l'option `eval = TRUE` pour que les
calculs puissent être réalisés.
---
- En ouvrant le ouvrant le rapport Rmarkdown
`4-td_graphiques - enonce`. Certains codes sont partiels et sont à
compléter (indication `???`). N'oubliez pas de modifier l'option
`eval = TRUE` pour que les calculs puissent être réalisés.
------------------------------------------------------------------------
# Analyse du lien espérance de vie et GDP
Dans ce TP, le jeu de données utilisé est le jeu `gapminder` du package
**gapminder**. Il comprend des séries de données de PIB par habitant et d'espérance
de vie par pays sur la période 1952-1990. Les observations ont lieu tous les 5 ans.
**gapminder**. Il comprend des séries de données de PIB par habitant et
d'espérance de vie par pays sur la période 1952-1990. Les observations
ont lieu tous les 5 ans.
## Données
@@ -97,8 +95,8 @@ Dans un premier temps, il faut installer le package et le charger.
library(gapminder)
```
Ce jeu de données contient 1706 observations où chaque ligne correspond à un
pays `country` pour une année d'observation `year`.
Ce jeu de données contient 1706 observations où chaque ligne correspond
à un pays `country` pour une année d'observation `year`.
```{r}
paged_table(gapminder, options = list(rows.print = 15))
@@ -107,25 +105,27 @@ paged_table(gapminder, options = list(rows.print = 15))
On se concentre plus particulièrement sur les variables suivantes :
- `lifeExp` : l'espérance de vie ;
- `gdpPercap` : le PIB par habitant en dollars (conversion sur base 2005) ;
- `gdpPercap` : le PIB par habitant en dollars (conversion sur
base 2005) ;
- `pop` : la taille de la population ;
- `continent` : le continent d'appartenance.
- `continent` : le continent d'appartenance.
Pour plus détails, voir l'aide `?gapminder`.
## But de la visualisation
Dans ce TP, on cherche un ensemble de visualisations permettant de commenter
le lien entre GDP et espérance de vie, globalement et à différents
échelles géographiques :
Dans ce TP, on cherche un ensemble de visualisations permettant de
commenter le lien entre GDP et espérance de vie, globalement et à
différents échelles géographiques :
- est-ce que les pays les plus développés en termes de PIB par habitant ont la
meilleure espérance de vie ?
- peut-on identifier des dynamiques différentes en fonction des pays ou des continents ?
- est-ce que les pays les plus développés en termes de PIB par
habitant ont la meilleure espérance de vie ?
- peut-on identifier des dynamiques différentes en fonction des pays
ou des continents ?
- quels facteurs influencent également cette relation ?
**En vous répartissant en groupes de 3-4 étudiant.e.s.**, choisissez pour chaque groupe,
une des 4 visualisations suivantes :
**En vous répartissant en groupes de 3-4 étudiant.e.s.**, choisissez
pour chaque groupe, une des 4 visualisations suivantes :
- visualisations utilisant des dot points.
- visualisations permettant de présenter une distribution.
@@ -136,12 +136,9 @@ une des 4 visualisations suivantes :
### Dot points
::: exercise-box
En partant de cette visualisation, construire une ou plusieurs visualisations
permettant d'analyser et de commenter les liens que vous
En partant de cette visualisation, construire une ou plusieurs
visualisations permettant d'analyser et de commenter les liens que vous
pouvez observer entre `gdpPercap` et `lifeExp`.
:::
```{r}
@@ -149,16 +146,12 @@ ggplot(data = gapminder, aes(x = gdpPercap, y = lifeExp)) +
geom_point()
```
### Distributions
::: exercise-box
En partant de cette visualisation, analyser et commenter les écarts
d'espérance de vie sur la planète. Vous pourrez aussi adopter d'autres
visualisations permettant de comparer des distributions.
:::
```{r}
@@ -166,14 +159,14 @@ ggplot(data = gapminder, aes(x = lifeExp)) +
geom_density()
```
### Cartes
Afin de visualiser plus précisément les caractéristiques régionales de l'espérance
de vie et du PIB par habitant, nous décidons de faire des cartes.
Afin de visualiser plus précisément les caractéristiques régionales de
l'espérance de vie et du PIB par habitant, nous décidons de faire des
cartes.
Il faut au préalable récupérer un fond de carte (ici de l'année 2016). Nous prenons
les données `gapminder` de 2007.
Il faut au préalable récupérer un fond de carte (ici de l'année 2016).
Nous prenons les données `gapminder` de 2007.
```{r}
library(giscoR)
@@ -194,34 +187,33 @@ ggplot(world_df) +
```
::: exercise-box
En partant de la visualisation et des données ci-dessus, représenter et analyser
les disparités d'espérance
de vie et de revenus.
En partant de la visualisation et des données ci-dessus, représenter et
analyser les disparités d'espérance de vie et de revenus.
:::
---
------------------------------------------------------------------------
# Analyse des accidents à vélo en France
Dans ce TP, nous nous intéressons aux accidents corporels survenus sur une voie
ouverte à la circulation publique, impliquant au moins un véhicule et ayant fait
au moins une victime ayant nécessité des soins) pour la période 2005-2021.
Dans ce TP, nous nous intéressons aux accidents corporels survenus sur
une voie ouverte à la circulation publique, impliquant au moins un
véhicule et ayant fait au moins une victime ayant nécessité des soins)
pour la période 2005-2021.
L'objectif est de créer un ensemble de visualisations qui permettront de mieux
comprendre accidentologie des cyclistes, ce qui trouve de nombreuses sources
d'applications notamment en assurance.
L'objectif est de créer un ensemble de visualisations qui permettront de
mieux comprendre accidentologie des cyclistes, ce qui trouve de
nombreuses sources d'applications notamment en assurance.
Les données et documentation de ces données sont disponibles [ici](https://www.data.gouv.fr/fr/datasets/bases-de-donnees-annuelles-des-accidents-corporels-de-la-circulation-routiere-annees-de-2005-a-2021/).
Les données et documentation de ces données sont disponibles
[ici](https://www.data.gouv.fr/fr/datasets/bases-de-donnees-annuelles-des-accidents-corporels-de-la-circulation-routiere-annees-de-2005-a-2021/).
## Données
Pour récupérer les données :
1. récupérer le fichier zippé "data_velo.zip".
2. créer un dossier "data" à la racine de votre projet.
3. placer y le contenu du dossier zippé.
1. récupérer le fichier zippé "data_velo.zip".
2. créer un dossier "data" à la racine de votre projet.
3. placer y le contenu du dossier zippé.
Les données se chargent avec la commande suivante.
@@ -231,18 +223,24 @@ library(readr)
library(tidyverse)
# main data
accidents <- read_csv("data/accidentsVelo.csv",
col_types = cols(Num_Acc = col_double(),
date = col_date(format = "%Y-%m-%d")))
path <- getwd()
accidents <- read_csv(
paste0(
path,
"/data/accidentsVelo.csv"),
col_types = cols(Num_Acc = col_double(), date = col_date(format = "%Y-%m-%d"))
)
# few ajustements
accidents <- accidents |>
mutate(mois = factor(mois),
jour = factor(jour),
dep = factor(dep),
agg = factor(agg),
grav = factor(grav),
situ = factor(situ))
mutate(
mois = factor(mois),
jour = factor(jour),
dep = factor(dep),
agg = factor(agg),
grav = factor(grav),
situ = factor(situ)
)
# correct some issues with variables `hrmn`
issue <- which(str_length(accidents$hrmn) == 4)
@@ -257,11 +255,16 @@ accidents <- accidents |>
mutate(hour = strptime(hour, "%Y-%m-%d %H:%M")$hour)
# mapping table for french departments
departements_francais <- read_excel("data/departements-francais.xlsx")
departements_francais <- read_excel(
paste0(
path,
"/data/departements-francais.xlsx"),
col_types = c("text", "text", "text")
)
```
Ce jeu de données contient 74758 observations où chaque ligne correspond à un
accident.
Ce jeu de données contient 74758 observations où chaque ligne correspond
à un accident.
```{r}
paged_table(accidents, options = list(rows.print = 15))
@@ -269,90 +272,90 @@ paged_table(accidents, options = list(rows.print = 15))
On se concentre plus particulièrement sur les variables suivantes :
- `date`, `an`, `mois`, `jour`, `hour`, : la date, année, mois, jour et heure de l'accident ;
- `date`, `an`, `mois`, `jour`, `hour`, : la date, année, mois, jour
et heure de l'accident ;
- `dep` : le département ;
- `agg` : la location (1 = "hors agglomération", 2 = "en agglomération") ;
- `agg` : la location (1 = "hors agglomération", 2 = "en
agglomération") ;
- `lat` : latitude (pas toujours renseignée) ;
- `long` : longitude (pas toujours renseignée) ;
- `situ` : la situation de l'accident (-1 = Non renseigné, 0 = Aucun,
1 = Sur chaussée, 2 = Sur bande darrêt durgence, 3 = Sur accotement,
4 = Sur trottoir, 5 = Sur piste cyclable, 6 = Sur autre voie spéciale, 8 = Autres) ;
- `grav` : la gravité (1 = Indemne, 2 = Tué, 3 = Blessé hospitalisé,
4 = Blessé léger).
1 = Sur chaussée, 2 = Sur bande darrêt durgence, 3 = Sur
accotement, 4 = Sur trottoir, 5 = Sur piste cyclable, 6 = Sur autre
voie spéciale, 8 = Autres) ;
- `grav` : la gravité (1 = Indemne, 2 = Tué, 3 = Blessé hospitalisé, 4
= Blessé léger).
D'autres variables intéressantes pourraient être étudiées, mais nous nous limitons
à celle-ci dans ce TP.
D'autres variables intéressantes pourraient être étudiées, mais nous
nous limitons à celle-ci dans ce TP.
## But de la visualisation
Dans ce TP, on cherche à réaliser une analyse exploratoire du jeu de données
afin d'identifier les relations importantes entre le nombre d'accidents et
ses déterminants :
Dans ce TP, on cherche à réaliser une analyse exploratoire du jeu de
données afin d'identifier les relations importantes entre le nombre
d'accidents et ses déterminants :
- est-ce que les accidents sont plus situés en agglomération ?
- comment les accidents se répartissent dans l'espace et dans le temps ?
- quels impacts ont les situations de circulation sur la gravité des accidents ?
- comment les accidents se répartissent dans l'espace et dans le temps
?
- quels impacts ont les situations de circulation sur la gravité des
accidents ?
En vous répartissant en groupes de 3-4 étudiant.e.s., choisissez pour chaque groupe,
une des 4 visualisations suivantes :
En vous répartissant en groupes de 3-4 étudiant.e.s., choisissez pour
chaque groupe, une des 4 visualisations suivantes :
- visualisations utilisant des cartes statiques ou dynamiques.
- visualisations utilisant des bar plots.
L'anayse a réalisé ici est préliminaire, d'autres informations intéressantes
sont à extraire de ce jeu de données.
L'anayse a réalisé ici est préliminaire, d'autres informations
intéressantes sont à extraire de ce jeu de données.
## Différentes visualisations
### Carte
#### Carte dynamique {-}
#### Carte dynamique {.unnumbered}
::: exercise-box
1. Tracer une carte dynamique représentant la location des accidents
(latitude, longitude) en France sur toute la période en modulant la
gravité.
2. Faire deux variantes de cette carte, selon le caractère urbain ou
non des accidents.
1. Tracer une carte dynamique représentant la location des accidents (latitude,
longitude) en France sur toute la période en modulant la gravité.
2. Faire deux variantes de cette carte, selon le caractère urbain ou non des accidents.
3. Commenter ces figures.
4. Quelles limites voyez-vous à cette représentation ?
3. Commenter ces figures.
4. Quelles limites voyez-vous à cette représentation ?
:::
Voici un premier code à trou pour vous aider. Pour alléger les temps de production
afficher uniquement quelques points. Vous pourrez ajouter l'ensemble du jeu de données
quand votre code sera finalisé.
Voici un premier code à trou pour vous aider. Pour alléger les temps de
production afficher uniquement quelques points. Vous pourrez ajouter
l'ensemble du jeu de données quand votre code sera finalisé.
```{r, eval = F}
```{r, eval=F}
library(mapview)
library(sf)
## Remove NA
df_map_dyn <- accidents |>
filter(???) |>
filter(!is.na(lat) & !is.na(long)) |>
na.omit()
# Make map and print it
mymap <- st_as_sf(???)
mymap <- st_as_sf()
mapview(mymap, cex = 2, layer.name = "Gravité",
zcol = "grav",legend = TRUE )
```
#### Carte choroplèthe {-}
#### Carte choroplèthe {.unnumbered}
::: exercise-box
1. Tracer une carte statistique de type chonoplèthe et représenter le
nombre d'accidents par département.
1. Tracer une carte statistique de type chonoplèthe et représenter
le nombre d'accidents par département.
2. Faire plusieurs variantes de cette carte selon la gravité des accidents.
2. Faire plusieurs variantes de cette carte selon la gravité des
accidents.
:::
Voici un premier code à trou pour vous aider.
@@ -396,23 +399,22 @@ g_map_acc
### Bar plots
::: exercise-box
1. On s'intéresse à la répartition par mois et horaires des accidents
(variable `an`, `hour`, `mois`). Tracer des bar plots permettant de
montrer la répartition temporelle des accidents.
1. On s'intéresse à la répartition par mois et horaires des accidents (variable
`an`, `hour`, `mois`). Tracer des bar plots permettant de montrer la répartition
temporelle des accidents.
2. On s'intéresse à l'impact des situations de circulation. Tracer des bar plots
permettant de montrer la répartition de la gravité des accidents selon ces situations.
2. On s'intéresse à l'impact des situations de circulation. Tracer des
bar plots permettant de montrer la répartition de la gravité des
accidents selon ces situations.
3. Voyez-vous une évolution sur la période 2005-2021 ?
4. Réfléchir à des représentations alternatives pour les phénomènes périodiques.
4. Réfléchir à des représentations alternatives pour les phénomènes
périodiques.
:::
# Informations de session {.unnumbered}
# Informations de session {-}
```{r}
sessionInfo()
```