timevis
est un package pour faire des emplois du temps interactifs.
# 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
ymd_hm("2020-08-24-14-00")
arrivee <- ymd_hm("2020-08-25-08-30") + days(0:3)
am <- ymd_hm("2020-08-25-14-00") + days(0:3)
pm <- ymd_hm("2020-08-25-07-45") + days(0:3)
pdej <- ymd_hm("2020-08-25-12-30") + days(0:3)
dejeuner <- ymd_hm("2020-08-24-19-00") + days(0:3)
diner <-
hours(1)
h1 <- hours(2)
h2 <- hours(3)
h3 <- hours(4)
h4 <- minutes(15)
m15 <- minutes(30)
m30 <- minutes(45) m45 <-
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é.
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
## # A tibble: 22 x 6
## id content start end group type
## <int> <chr> <dttm> <dttm> <chr> <chr>
## 1 1 Arrivée 2020-08-24 13:30:00 NA Di point
## 2 2 Choix des ateliers 2020-08-24 14:00:00 2020-08-24 16:00:00 Di range
## 3 3 GAM 2020-08-24 16:00:00 2020-08-24 18:45:00 M range
## 4 4 Optim 2020-08-24 16:00:00 2020-08-24 18:45:00 De range
## 5 5 ED 2020-08-24 16:00:00 2020-08-24 18:45:00 M range
## 6 6 Restitutions 2020-08-25 08:30:00 2020-08-25 11:00:00 Di range
## 7 7 Enseignement 2020-08-25 11:00:00 2020-08-25 12:15:00 Co range
## 8 8 Widgets 2020-08-25 11:00:00 2020-08-25 12:15:00 Co range
## 9 9 Enseignement 2020-08-25 14:00:00 2020-08-25 16:00:00 Co range
## 10 10 Widgets 2020-08-25 14:00:00 2020-08-25 16:00:00 Co range
## # … with 12 more rows
Les groupes sont à préciser dans un data frame de correspondance.
data.frame(
groupes <-id = c("M", "De", "Co", "Di"),
content = c("Maths", "Developpement", "Communication", "Divers")
)
La fonction timevis
permet d’afficher le widget.
timevis(programmme, groups = groupes)