Add initial project files and styles for data visualization

- Created a new Excel file: `departements-francais.xlsx` for data storage.
- Added a CSS file: `style.css` with custom styles for various mathematical environments including boxes for lemmas, theorems, definitions, and more, complete with automatic numbering.
- Initialized R project file: `tp2.Rproj` with default settings for workspace management and LaTeX integration.
This commit is contained in:
2025-11-06 09:07:30 +01:00
parent 6369e30257
commit 5c8efbdc2e
10 changed files with 83065 additions and 264 deletions

View File

@@ -297,8 +297,8 @@ On présente ci-dessous un aperçu des données.
fold <- getwd()
# Load data
# load(paste0(fold, "/data/datafreMPTL.RData"))
load(paste0(fold, "/M2/Data Visualisation/tp1", "/data/datafreMPTL.RData"))
load(paste0(fold, "/data/datafreMPTL.RData"))
# load(paste0(fold, "/M2/Data Visualisation/tp1", "/data/datafreMPTL.RData"))
paged_table(dat, options = list(rows.print = 15))
```
@@ -427,24 +427,24 @@ dobservations avec 0 sinistre, 1 sinistre, …
:::
```{r}
dat %>%
group_by(ClaimNb) %>%
summarise(n = n(), Exposure = round(sum(Exposure), 0)) %>%
dat |>
group_by(ClaimNb) |>
summarise(n = n(), Exposure = round(sum(Exposure), 0)) |>
kable(
col_names = c(
"Nombre de sinistres",
"Nombres d'observations",
"Exposition totale"
)
) %>%
kable_styling(full_width = F)
) |>
kable_styling(full_width = FALSE)
```
```{r}
pf_freq <- round(sum(dat$ClaimNb) / sum(dat$Exposure), 4)
pf_freq
``
`
```
Ce calcul de fréquence sera ensuite utile pour l'affichage des
résultats.
@@ -469,47 +469,45 @@ package **ggplot2**.
```{r, eval = FALSE}
# On regroupe selon les modalites de la DrivAge
# l'exposition, le nombre de sinistres et la frequence
df_plot <- dat %>%
group_by(DrivAge) %>%
summarize(exp = Exposure, nb_claims = ClaimNb, freq = nb_claims / exp)
df_plot <- dat |>
group_by(DrivAge) |>
summarize(
exp = sum(Exposure),
nb_claims = sum(ClaimNb),
freq = sum(ClaimNb) / sum(Exposure)
)
# Histogramme exposition
ggplot(df_plot) +
geom_bar(
aes(x = DrivAge, y = exp),
stat = "identity",
fill = "lightblue",
color = "blue"
) +
labs(
title = "Exposition par âge du conducteur",
x = "Âge du conducteur",
y = "Exposition"
) +
theme_minimal()
p1 <- ggplot(df_plot, aes(x = DrivAge, y = exp)) +
geom_bar(stat = "identity", fill = "grey", color = "black", alpha = 0.5) +
labs(x = "Age du conducteur", y = "Exposition en années") +
theme_bw()
# Histogramme frequence
ggplot(df_plot) +
geom_bar(
aes(x = DrivAge, y = freq),
stat = "identity",
fill = "lightblue",
color = "blue"
) +
labs(
title = "Fréquence par âge du conducteur",
x = "Âge du conducteur",
y = "Fréquence"
) +
theme_minimal()
# Histogramme frequence
p2 <- ggplot(df_plot, aes(x = DrivAge, y = freq)) +
geom_bar(stat = "identity", fill = "grey", color = "black", alpha = 0.5) +
labs(x = "Age du conducteur", y = "Frequence") +
theme_bw()
plot_grid(p1, p2, labels = c('A', 'B'), label_size = 12)
```
```{r}
df_plot <- dat |>
group_by(DrivAge) |>
summarize(
exp = sum(Exposure),
nb_claims = sum(ClaimNb),
freq = sum(ClaimNb) / sum(Exposure)
)
# Scatter plot frequence
# A compléter
p3 <- ggplot(df_plot, aes(x = DrivAge, y = freq)) +
geom_point() +
geom_smooth() +
labs(x = "Age du conducteur", y = "Frequence") +
theme_bw()
p3
```
### Etape 4 : Examiner l'intéraction avec une autre variable {.unnumbered}
@@ -525,9 +523,20 @@ améliorations en modifiant les variables `DrivAge` et `BonusMalus`.
```{r}
# On regroupe selon les modalites de la DrivAge et de Area
# l'exposition, le nombre de sinistres et la frequence
df_plot <- dat |>
group_by(DrivAge, BonusMalus) |>
summarize(
exp = sum(Exposure),
nb_claims = sum(ClaimNb),
freq = sum(ClaimNb) / sum(Exposure)
)
# A compléter
p4 <- ggplot(df_plot, aes(x = DrivAge, y = freq, color = BonusMalus)) +
geom_point() +
geom_smooth() +
labs(x = "Age du conducteur", y = "Frequence", color = "Bonus-Malus") +
theme_bw()
p4
```
On propose 4 ajustements :
@@ -543,18 +552,29 @@ On propose 4 ajustements :
lim_classes <- c(50, 75, 100, 125, Inf)
# Exclusion des donnees "extremes" et faire les regroupement
df_plot <- dat %>%
filter(DrivAge <= 85, BonusMalus <= 125) %>%
df_plot <- dat |>
filter(DrivAge <= 85, BonusMalus <= 125) |>
# regroupement en classes d'ages de 5 ans
mutate(DrivAge = ceiling(pmin(DrivAge, 85) / 5) * 5) %>%
mutate(BonusMalus = cut(BonusMalus,
breaks = lim_classes, include.lowest = TRUE))
mutate(DrivAge = ceiling(pmin(DrivAge, 85) / 5) * 5) |>
mutate(BonusMalus = cut(BonusMalus, breaks = lim_classes, include.lowest = TRUE))
# On regroupe selon les modalites de la DrivAge et de Area
# l'exposition, le nombre de sinistres et la frequence
df_plot <- df_plot |>
group_by(DrivAge, BonusMalus) |>
summarize(
exp = sum(Exposure),
nb_claims = sum(ClaimNb),
freq = sum(ClaimNb) / sum(Exposure)
)
# A compléter
# Scatter plot frequence
p5 <- ggplot(df_plot, aes(x = DrivAge, y = freq, color = BonusMalus)) +
geom_point() +
geom_smooth() +
labs(x = "Age du conducteur", y = "Frequence", color = "Bonus-Malus") +
theme_bw()
p5
```
### Conclure {.unnumbered}
@@ -565,8 +585,28 @@ bonus-malus.
:::
```{r, fig.height = 6, fig.width = 12}
# Histogramme plot frequence
p6 <- ggplot(df_plot, aes(x = DrivAge, y = exp, fill = BonusMalus)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
scale_x_continuous(breaks = seq(20, 85, 20), limits = c(20, 85)) +
labs(x = "Age du conducteur", y = "Exposition en années") +
theme_bw()
# A compléter
# Ajustement des legendes pour faire un graphique multiple
p5 <- p5 +
theme(
legend.position = "bottom"
) +
labs(color = "BonusMalus")
p6 <- p6 +
theme(
legend.position = "bottom"
) +
labs(fill = "BonusMalus")
# Creation d'un graphique avec deux figures et une légende commune
plot_grid(p6, p5, ncol = 2)
```
### Bonus - Analyse des couples {.unnumbered}
@@ -579,7 +619,7 @@ les couples de variables.
Compléter pour cela la fonction suivante et appliquer la à différents
couples.
```{r, eval = F}
```{r}
# Fonction d'analyse bivariée
# df : nom du data.frame
# var1 : nom de la variable explicative 1
@@ -591,39 +631,48 @@ plot_pairwise_disc <- function(df, var1, var2)
# replace variable vname by the binning variable
if(is.numeric(df$varx))
{
df <- df %>%
df <- df |>
mutate(varx = ntile(varx, 5))
}
if(is.numeric(df$vary))
{
df <- df %>%
df <- df |>
mutate(vary = ntile(vary, 5),
vary = factor(vary))
}
df %>%
group_by(??) %>%
summarize(exp = ??,
nb_claims = ??,
freq = ??,
.groups = "drop") %>%
ggplot(aes(x = ??,
y = ??,
colour = ??,
group = vary),
alpha = 0.3) +
df |>
group_by(varx, vary) |>
summarize(exp = sum(Exposure),
nb_claims = sum(ClaimNb),
freq = sum(ClaimNb) / sum(Exposure), .groups = "drop") |>
ggplot(aes(x = varx,
y = freq,
colour = vary,
group = vary), alpha = 0.3) +
geom_point() + geom_line() + theme_bw() +
labs(x = var1, y = "Frequence", colour = var2)
}
`
``
```
```{r}
p1 <- plot_pairwise_disc(dat, "DrivAge", "BonusMalus")
p2 <- plot_pairwise_disc(dat, "VehAge", "BonusMalus")
p3 <- plot_pairwise_disc(dat, "BonusMalus", "VehBrand")
p4 <- plot_pairwise_disc(dat, "VehBrand", "Area")
p5 <- plot_pairwise_disc(dat, "BonusMalus", "VehGas")
p6 <- plot_pairwise_disc(dat, "BonusMalus", "Area")
p7 <- plot_pairwise_disc(dat, "DrivAge", "Area")
p8 <- plot_pairwise_disc(dat, "VehPower", "VehGas")
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

@@ -0,0 +1,413 @@
---
title: "Manipulation des graphiques"
author: "Quentin Guibert"
date: "Année 2025-2026"
institute: "Université Paris-Dauphine | Master ISF"
lang: fr
link-citations: true
output:
rmdformats::robobook:
highlight: kate
use_bookdown: true
css: style.css
lightbox : true
gallery: true
code_folding: show
theme: flatly
toc_float:
collapsed: no
editor_options:
markdown:
wrap: 72
---
```{r setup, include=FALSE}
## Global options
knitr::opts_chunk$set(cache = FALSE, warning = FALSE, message = FALSE, fig.retina = 2)
options(encoding = 'UTF-8')
```
```{r, echo = FALSE, fig.keep= 'none'}
# Chargement des librairies graphiques
library(lattice)
library(grid)
library(ggplot2)
require(gridExtra)
library(locfit)
library(scales)
library(formattable)
library(RColorBrewer)
library(plotly)
library(dplyr)
library(tidyr)
library(rmarkdown)
library(ggthemes)
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).
---
# Prérequis
- Avoir installer `R` [ici](https://www.r-project.org/).
- Avoir installer un IDE, par exemple `RStudio`
[ici](https://www.rstudio.com/).
- Créer un nouveau projet (`File`, puis `New Projet`) dans un dossier
sur votre ordinateur.
- Télécharger [ici](https://moodle.psl.eu/course/view.php?id=21176)
les fichiers nécessaires au TD.
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.
---
# 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.
## Données
Dans un premier temps, il faut installer le package et le charger.
```{r}
# install.packages("gapminder")
library(gapminder)
```
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))
```
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) ;
- `pop` : la taille de la population ;
- `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 :
- 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 :
- visualisations utilisant des dot points.
- visualisations permettant de présenter une distribution.
- visualisations utilisant des cartes.
## Différentes visualisations
### Dot points
::: exercise-box
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}
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}
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.
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)
library(sf)
world <- gisco_countries
world <- subset(world, NAME_ENGL != "Antarctica") # Remove Antartica
# Merge data
world_df <- gapminder %>%
filter(year == "2007")
world_df <- world %>%
left_join(world_df, by = c("NAME_ENGL" = "country"))
ggplot(world_df) +
geom_sf(color = "black", fill = "grey") +
theme_void()
```
::: 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.
:::
---
# 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.
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/).
## 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é.
Les données se chargent avec la commande suivante.
```{r}
library(readxl)
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")))
# few ajustements
accidents <- accidents %>%
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)
correct <- accidents$hrmn[issue]
correct <- paste0("0", str_sub(correct, 1, 1), ":",
str_sub(correct, 2, 2), str_sub(correct, 4, 4))
accidents$hrmn[issue] <- correct
# Extract hour
accidents <- accidents %>%
mutate(hour = paste(date, hrmn, sep = " ")) %>%
mutate(hour = strptime(hour, "%Y-%m-%d %H:%M")$hour)
# mapping table for french departments
departements_francais <- read_excel("data/departements-francais.xlsx")
```
Ce jeu de données contient 74758 observations où chaque ligne correspond à un
accident.
```{r}
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 ;
- `dep` : le département ;
- `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).
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 :
- 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 ?
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.
## Différentes visualisations
### Carte
#### Carte dynamique {-}
::: 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.
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é.
```{r, eval = F}
library(mapview)
library(sf)
## Remove NA
df_map_dyn <- accidents %>%
filter(???) %>%
na.omit()
# Make map and print it
mymap <- st_as_sf(???)
mapview(mymap, cex = 2, layer.name = "Gravité",
zcol = "grav",legend = TRUE )
```
#### Carte choroplèthe {-}
::: exercise-box
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.
:::
Voici un premier code à trou pour vous aider.
```{r, eval = F}
# get french map - level nuts2
fr <- gisco_get_nuts(resolution = "20", country = ???, nuts_level = ???) %>%
mutate(res = "20M")
# Remove white-space to avoid errors.
library(stringr)
departements_francais <- departements_francais %>%
mutate(dep_name = str_trim(dep_name))
fr <- fr %>%
mutate(NUTS_NAME = str_trim(NUTS_NAME))
# Merge and remove departements outside metropolitan France
fr_map <- fr %>%
left_join(???) %>%
filter(! dep %in% c("971", ???) )
# count the number of accidents
df_acc <- ???
# merge statistics with the map
map_acc <- fr_map %>%
left_join(df_acc, by = c("dep" = "dep"))
# map with all accidents
g_map_acc <- ggplot(map_acc) +
geom_sf(???) +
scale_fill_viridis_c(option = "viridis") +
labs(title = "Carte des accidents de vélo",
subtitle = "Année 2005-2021",
fill = "Nombre d'accidents") +
theme_void()
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.
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.
:::
# Informations de session {-}
```{r}
sessionInfo()
```

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,243 @@
{
"fields": [
{
"name": "Num_Acc",
"title": "Identifiant accident ",
"type": "integer",
"description": "Numéro d'identification de l'accident"
},
{
"name": "date",
"title": "Date de l'accident ",
"type": "string",
"description": "Date de l'accident",
"rdfType": "http://schema.org/Date"
},
{
"name": "an",
"title": "Année de l'accident",
"type": "integer",
"description": "Année de l'accident"
},
{
"name": "mois",
"title": "Mois de l'accident",
"type": "string",
"description": "Mois de l'accident"
},
{
"name": "jour",
"title": "Jour de l'accident",
"type": "string",
"description": "Jour de l'accident"
},
{
"name": "hrmn",
"title": "Heure de l'accident ",
"type": "string",
"description": "Heure de l'accident"
},
{
"name": "dep",
"title": "Département ",
"type": "string",
"description": "Département de l'accident",
"rdfType": "http://rdf.insee.fr/def/geo#codeDepartement"
},
{
"name": "com",
"title": "Code commune ",
"type": "string",
"description": "code commune de l'accident",
"rdfType": "http://rdf.insee.fr/def/geo#codeCommune"
},
{
"name": "lat",
"title": "Latitude ",
"type": "number",
"description": "Latitude de l'accident",
"rdfType": "http://schema.org/latitude"
},
{
"name": "long",
"title": "Longitude ",
"type": "number",
"description": "Longitude de l'accident",
"rdfType": "http://schema.org/longitude"
},
{
"name": "agg",
"title": "agglomération",
"type": "integer",
"description": "Accident en agglomération ou hors agglomération"
},
{
"name": "int",
"title": "Type d'intersection ",
"type": "integer",
"description": "Type d'intersection de l'accident"
},
{
"name": "col",
"title": "Type de collision ",
"type": "integer",
"description": "Type de collision de l'accident"
},
{
"name": "lum",
"title": "Luminosité ",
"type": "integer",
"description": "Luminosité durant l'accident"
},
{
"name": "atm",
"title": "Conditions atmosphériques ",
"type": "integer",
"description": "Conditions atmosphériques durant l'accident"
},
{
"name": "catr",
"title": "Catégorie route ",
"type": "integer",
"description": "Catégorie de route de l'accident"
},
{
"name": "circ",
"title": "Circulation ",
"type": "integer",
"description": "Circulation durant l'accident"
},
{
"name": "nbv",
"title": "Nombre de voies ",
"type": "integer",
"description": "Nombre de voies de circulation de l'accident"
},
{
"name": "prof",
"title": "Profil en long ",
"type": "integer",
"description": "Profil en long de la route de l'accident"
},
{
"name": "plan",
"title": "Tracé en plan ",
"type": "integer",
"description": "Tracé en plan de la route de l'accident"
},
{
"name": "lartpc",
"title": "Largeur du TPC ",
"type": "number",
"description": "Largeur du terre-plein central (TPC) s'il existe (en m)"
},
{
"name": "larrout",
"title": "Largeur de la chaussée ",
"type": "number",
"description": "Largeur de la chaussée affectée à la circulation du sens de l'accident (en m)"
},
{
"name": "surf",
"title": "Etat de la surface ",
"type": "integer",
"description": "Etat de la surface de la route de l'accident"
},
{
"name": "infra",
"title": "Aménagement - Infrastructure ",
"type": "integer",
"description": "Infrastructure de la route de l'accident"
},
{
"name": "situ",
"title": "Situation ",
"type": "integer",
"description": "Situation de l'accident"
},
{
"name": "grav",
"title": "Gravité ",
"type": "string",
"description": "Gravité de l'accident"
},
{
"name": "sexe",
"title": "Sexe ",
"type": "integer",
"description": "Sexe de la victime"
},
{
"name": "age",
"title": "Age ",
"type": "integer",
"description": "Age de la victime"
},
{
"name": "trajet",
"title": "Motif de déplacement ",
"type": "integer",
"description": "Trajet de la victime"
},
{
"name": "secuexist",
"title": "Usage de sécurité",
"type": "integer",
"description": "Critère indiquant si la visctime utilisait un équipement de sécurité"
},
{
"name": "equipement",
"title": "Equipement ",
"type": "string",
"description": "Equipement de la victime"
},
{
"name": "obs",
"title": "Obstacle fixe heurté",
"type": "integer",
"description": "Obstacle fixe heurté durant l'accident (si obstacle fixe heurté)"
},
{
"name": "obsm",
"title": "Obstacle mobile heurté",
"type": "integer",
"description": "Obstacle mobile heurté durant l'accident (si obstacle mobile heurté)"
},
{
"name": "choc",
"title": "Choc subi",
"type": "integer",
"description": "Description du choc subi (si choc)"
},
{
"name": "manv",
"title": "Manoeuvre avant l'accident",
"type": "integer",
"description": "Manoeuvre du véhicule avant l'accident (si manoeuvre)"
},
{
"name": "vehiculeid",
"title": "Identifiant du véhicule",
"type": "string",
"description": "Identifiant du véhicule lié à l'accident, (format : id accident + id véhicule)"
},
{
"name": "typevehicules",
"title": "Type des autres véhicules",
"type": "string",
"description": "Type des véhicules liés à l'accident"
},
{
"name": "manoeuvehicules",
"title": "Manoeuvre du véhicule lié à l'accident",
"type": "string",
"description": "Manoeuvre des véhicules lié à l'accident (si manoeuvre)"
},
{
"name": "numVehicules",
"title": "Nombre d'autres véhicules",
"type": "integer",
"description": "Nombre d'autres véhicules lié à l'accident"
}
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,198 @@
.infobox {
padding: 1em 1em 1em 4em;
margin-bottom: 10px;
border: 2px solid orange;
border-radius: 10px;
background: #f5f5f5 5px center/3em no-repeat;
}
/* Custom box styles for math environments */
/* Lemma Box */
.lemma-box {
border: 2px solid #3c8dbc;
background-color: #e6f7ff;
padding: 10px;
border-radius: 8px;
margin: 10px 0;
}
/* Theorem Box */
.theorem-box {
border: 2px solid #2ca02c;
background-color: #eaffea;
padding: 10px;
border-radius: 8px;
margin: 10px 0;
}
/* Corollary Box */
.corollary-box {
border: 2px solid #2ca02c;
background-color: #eaffea;
padding: 10px;
border-radius: 8px;
margin: 10px 0;
}
/* Proposition Box */
.proposition-box {
border: 2px solid #ff7f0e;
background-color: #fff3e6;
padding: 10px;
border-radius: 8px;
margin: 10px 0;
}
/* Conjecture Box */
.conjecture-box {
border: 2px solid #9467bd;
background-color: #f5e6ff;
padding: 10px;
border-radius: 8px;
margin: 10px 0;
}
/* Definition Box */
.definition-box {
border: 2px solid #d62728;
background-color: #ffe6e6;
padding: 10px;
border-radius: 8px;
margin: 10px 0;
}
/* Example Box */
.example-box {
border: 2px solid #17becf;
/* background-color: #e6f7ff;*/
padding: 10px;
border-radius: 8px;
margin: 10px 0;
}
/* Exercise Box */
.exercise-box {
border: 2px solid #1f77b4;
background-color: #e6f7ff;
padding: 10px;
border-radius: 8px;
margin: 10px 0;
}
/* Hypothesis Box */
.hypothesis-box {
border: 2px solid #e377c2;
background-color: #ffe6f5;
padding: 10px;
border-radius: 8px;
margin: 10px 0;
}
/* Remark Box */
.remark-box {
border: 2px solid #7f7f7f;
background-color: #f2f2f2;
padding: 10px;
border-radius: 8px;
margin: 10px 0;
}
/* Proof Box */
.proof-box {
border: 2px solid #bcbd22;
background-color: #fafad2;
padding: 10px;
border-radius: 8px;
margin: 10px 0;
}
/* Hint Box */
.hint-box {
border: 2px solid #7f7f7f;
background-color: #f2f2f2;
padding: 10px;
border-radius: 8px;
margin: 10px 0;
}
/* Numérotation automatique */
.lemma-box::before {
counter-increment: lemma-counter;
content: "Lemme " counter(lemma-counter) ". ";
font-weight: bold;
}
.theorem-box::before {
counter-increment: theorem-counter;
content: "Théorème " counter(theorem-counter) ". ";
font-weight: bold;
}
.corollary-box::before {
counter-increment: corollary-counter;
content: "Corollaire " counter(corollary-counter) ". ";
font-weight: bold;
}
.proposition-box::before {
counter-increment: proposition-counter;
content: "Proposition " counter(proposition-counter) ". ";
font-weight: bold;
}
.conjecture-box::before {
counter-increment: conjecture-counter;
content: "Conjecture " counter(conjecture-counter) ". ";
font-weight: bold;
}
.definition-box::before {
counter-increment: definition-counter;
content: "Définition " counter(definition-counter) ". ";
font-weight: bold;
}
.example-box::before {
counter-increment: example-counter;
content: "Exemple " counter(example-counter) ". ";
font-weight: bold;
}
.exercise-box::before {
counter-increment: exercise-counter;
content: "Question " counter(exercise-counter) ". ";
font-weight: bold;
}
.hypothesis-box::before {
counter-increment: hypothesis-counter;
content: "Hypothèse " counter(hypothesis-counter) ". ";
font-weight: bold;
}
.remark-box::before {
counter-increment: remark-counter;
content: "Remarque " counter(remark-counter) ". ";
font-weight: bold;
}
.proof-box::before {
counter-increment: proof-counter;
content: "Preuve " counter(proof-counter) ". ";
font-weight: bold;
}
.hint-box::before {
content: "Indice." ;
font-weight: bold;
}
/* Initialisation des compteurs */
body {
counter-reset: lemma-counter corollary-counter proposition-counter conjecture-counter definition-counter example-counter exercise-counter hypothesis-counter remark-counter proof-counter;
}

View File

@@ -0,0 +1,17 @@
Version: 1.0
RestoreWorkspace: Default
SaveWorkspace: Default
AlwaysSaveHistory: Default
EnableCodeIndexing: Yes
UseSpacesForTab: Yes
NumSpacesForTab: 2
Encoding: UTF-8
RnwWeave: Sweave
LaTeX: pdfLaTeX
BuildType: Website
SpellingDictionary: fr_FR