-
Notifications
You must be signed in to change notification settings - Fork 0
/
widget_timevis.Rmd
92 lines (76 loc) · 3 KB
/
widget_timevis.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
---
title: "Timevis"
author: "State of the R"
date: "24-28/08/2020"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
`timevis` est un package pour faire des emplois du temps interactifs.
```{r, message=FALSE}
# install.packages("timevis")
library(timevis)
library(tidyverse)
library(lubridate)
```
Il faut d'abord par créer un data frame avec les informations que l'on souhaite visualiser.
Afin faciliter la lecture, nous allons d'abord créer des
```{r}
arrivee <- ymd_hm("2020-08-24-14-00")
am <- ymd_hm("2020-08-25-08-30") + days(0:3)
pm <- ymd_hm("2020-08-25-14-00") + days(0:3)
pdej <- ymd_hm("2020-08-25-07-45") + days(0:3)
dejeuner <- ymd_hm("2020-08-25-12-30") + days(0:3)
diner <- ymd_hm("2020-08-24-19-00") + days(0:3)
h1 <- hours(1)
h2 <- hours(2)
h3 <- hours(3)
h4 <- hours(4)
m15 <- minutes(15)
m30 <- minutes(30)
m45 <- minutes(45)
```
Le data.frame doit contenir les colonnes `id` (identifiant unique), `content` pour le texte à afficher sur l'événement, `start` et `end` pour les dates de début et de fin, et éventuellement `group` et `type` pour le groupe de l'événement et la façon dont il est affiché.
```{r}
programmme <-
tribble(
~content, ~start, ~end, ~group, ~type,
"Arrivée", arrivee - m30, NA, "Di", "point",
"Choix des ateliers", arrivee, arrivee + h2, "Di", "range",
"GAM", arrivee + h2, arrivee + h4 + m45, "M", "range",
"Optim", arrivee + h2, arrivee + h4 + m45, "De", "range",
"ED", arrivee + h2, arrivee + h4 + m45, "M", "range",
"Restitutions", am[1], am[1] + h2 + m30, "Di", "range",
"Enseignement", am[1] + h2 + m30, am[1] + h3 + m45, "Co", "range",
"Widgets", am[1] + h2 + m30, am[1] + h3 + m45, "Co", "range",
"Enseignement", pm[1], pm[1] + h2, "Co", "range",
"Widgets", pm[1], pm[1] + h2, "Co", "range",
"Petit déjeuner", pdej[1], pdej[1] + m30, NA, "background",
"Petit déjeuner", pdej[2], pdej[2] + m30, NA, "background",
"Petit déjeuner", pdej[3], pdej[3] + m30, NA, "background",
"Petit déjeuner", pdej[4], pdej[4] + m30, NA, "background",
"Déjeuner", dejeuner[1], dejeuner[1] + h1 + m15 , NA, "background",
"Déjeuner", dejeuner[2], dejeuner[2] + h1 + m15 , NA, "background",
"Déjeuner", dejeuner[3], dejeuner[3] + h1 + m15 , NA, "background",
"Déjeuner", dejeuner[4], dejeuner[4] + h1 + m15 , NA, "background",
"Dîner", diner[1], diner[1] + hours(2), NA, "background",
"Dîner", diner[2], diner[2] + hours(2), NA, "background",
"Dîner", diner[3], diner[3] + hours(2), NA, "background",
"Dîner", diner[4], diner[4] + hours(2), NA, "background",
) %>%
mutate(id = 1:n()) %>%
dplyr::select(id, everything())
programmme
```
Les groupes sont à préciser dans un data frame de correspondance.
```{r}
groupes <- data.frame(
id = c("M", "De", "Co", "Di"),
content = c("Maths", "Developpement", "Communication", "Divers")
)
```
La fonction `timevis` permet d'afficher le widget.
```{r}
timevis(programmme, groups = groupes)
```