Plot timelines using ggplot

1 Load packages

library(tidyverse)  # data wrangling
library(vistime)  # time line

2 Motivation

For project planing, a visualization of some time line is often useful. If it’s not the dates but rather the steps of a process, a graph of steps is more appropriate. However, if the sequence of steps is simple and rather linear, and the dates are the important piece of information to be transmitted, a kind of timeline graph is warranted.

Here’s one go: We’re going to make use of Sandra Raabe’s nice R package vistime.

3 Sample data

timeline_data <- data.frame(
  event = c("Anmeldung", "Vergabe", "Schreiben", "Thesismodul", "Beginn Semester 1", "Ende Semester 1", "Beginn Semester 2", "Ende Semester 2"),
  start = c("2023-03-15", "2023-05-22", "2023-10-04", "2023-10-04", "2023-03-15", "2023-06-30", "2023-10-04", "2024-01-14"), 
  end   = c("2023-05-21", "2023-06-30", "2024-01-14", "2024-01-14", "2023-03-15", "2023-06-30", "2023-10-04", "2024-01-14"),
  group = c("Semester 1", "Semester 1", "Semester 2", "Semester 2", "Semester 1", "Semester 1", "Semester 2", "Semester 2")
)

4 Visualization

gg_vistime(timeline_data, optimize_y = TRUE) +
  labs(title = "Thesis schreiben im Studiengang AWM",
       subtitle = "ENTWURF") 

5 Debrief

6 Reproducibility

#> ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.2.1 (2022-06-23)
#>  os       macOS Big Sur ... 10.16
#>  system   x86_64, darwin17.0
#>  ui       X11
#>  language (EN)
#>  collate  en_US.UTF-8
#>  ctype    en_US.UTF-8
#>  tz       Europe/Berlin
#>  date     2022-11-30
#>  pandoc   2.19.2 @ /Applications/RStudio.app/Contents/MacOS/quarto/bin/tools/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
#>  package              * version date (UTC) lib source
#>  assertive.base         0.0-9   2021-02-08 [1] CRAN (R 4.2.0)
#>  assertive.properties   0.0-5   2022-04-21 [1] CRAN (R 4.2.0)
#>  assertive.types        0.0-3   2016-12-30 [1] CRAN (R 4.2.0)
#>  assertthat             0.2.1   2019-03-21 [1] CRAN (R 4.2.0)
#>  backports              1.4.1   2021-12-13 [1] CRAN (R 4.2.0)
#>  blogdown               1.15    2022-11-07 [1] CRAN (R 4.2.0)
#>  bookdown               0.30    2022-11-09 [1] CRAN (R 4.2.0)
#>  broom                  1.0.1   2022-08-29 [1] CRAN (R 4.2.0)
#>  bslib                  0.4.1   2022-11-02 [1] CRAN (R 4.2.0)
#>  cachem                 1.0.6   2021-08-19 [1] CRAN (R 4.2.0)
#>  callr                  3.7.3   2022-11-02 [1] CRAN (R 4.2.0)
#>  cellranger             1.1.0   2016-07-27 [1] CRAN (R 4.2.0)
#>  cli                    3.4.1   2022-09-23 [1] CRAN (R 4.2.0)
#>  codetools              0.2-18  2020-11-04 [2] CRAN (R 4.2.1)
#>  colorout             * 1.2-2   2022-06-13 [1] local
#>  colorspace             2.0-3   2022-02-21 [1] CRAN (R 4.2.0)
#>  crayon                 1.5.2   2022-09-29 [1] CRAN (R 4.2.1)
#>  data.table             1.14.6  2022-11-16 [1] CRAN (R 4.2.0)
#>  DBI                    1.1.3   2022-06-18 [1] CRAN (R 4.2.0)
#>  dbplyr                 2.2.1   2022-06-27 [1] CRAN (R 4.2.0)
#>  devtools               2.4.5   2022-10-11 [1] CRAN (R 4.2.1)
#>  digest                 0.6.30  2022-10-18 [1] CRAN (R 4.2.0)
#>  dplyr                * 1.0.10  2022-09-01 [1] CRAN (R 4.2.0)
#>  ellipsis               0.3.2   2021-04-29 [1] CRAN (R 4.2.0)
#>  evaluate               0.18    2022-11-07 [1] CRAN (R 4.2.0)
#>  fansi                  1.0.3   2022-03-24 [1] CRAN (R 4.2.0)
#>  farver                 2.1.1   2022-07-06 [1] CRAN (R 4.2.0)
#>  fastmap                1.1.0   2021-01-25 [1] CRAN (R 4.2.0)
#>  forcats              * 0.5.2   2022-08-19 [1] CRAN (R 4.2.0)
#>  fs                     1.5.2   2021-12-08 [1] CRAN (R 4.2.0)
#>  gargle                 1.2.1   2022-09-08 [1] CRAN (R 4.2.0)
#>  generics               0.1.3   2022-07-05 [1] CRAN (R 4.2.0)
#>  ggplot2              * 3.4.0   2022-11-04 [1] CRAN (R 4.2.0)
#>  ggrepel                0.9.2   2022-11-06 [1] CRAN (R 4.2.0)
#>  glue                   1.6.2   2022-02-24 [1] CRAN (R 4.2.0)
#>  googledrive            2.0.0   2021-07-08 [1] CRAN (R 4.2.0)
#>  googlesheets4          1.0.1   2022-08-13 [1] CRAN (R 4.2.0)
#>  gtable                 0.3.1   2022-09-01 [1] CRAN (R 4.2.0)
#>  haven                  2.5.1   2022-08-22 [1] CRAN (R 4.2.0)
#>  highr                  0.9     2021-04-16 [1] CRAN (R 4.2.0)
#>  hms                    1.1.2   2022-08-19 [1] CRAN (R 4.2.0)
#>  htmltools              0.5.3   2022-07-18 [1] CRAN (R 4.2.0)
#>  htmlwidgets            1.5.4   2021-09-08 [1] CRAN (R 4.2.0)
#>  httpuv                 1.6.6   2022-09-08 [1] CRAN (R 4.2.0)
#>  httr                   1.4.4   2022-08-17 [1] CRAN (R 4.2.0)
#>  jquerylib              0.1.4   2021-04-26 [1] CRAN (R 4.2.0)
#>  jsonlite               1.8.3   2022-10-21 [1] CRAN (R 4.2.1)
#>  knitr                  1.41    2022-11-18 [1] CRAN (R 4.2.0)
#>  later                  1.3.0   2021-08-18 [1] CRAN (R 4.2.0)
#>  lazyeval               0.2.2   2019-03-15 [1] CRAN (R 4.2.0)
#>  lifecycle              1.0.3   2022-10-07 [1] CRAN (R 4.2.0)
#>  lubridate              1.9.0   2022-11-06 [1] CRAN (R 4.2.0)
#>  magrittr               2.0.3   2022-03-30 [1] CRAN (R 4.2.0)
#>  memoise                2.0.1   2021-11-26 [1] CRAN (R 4.2.0)
#>  mime                   0.12    2021-09-28 [1] CRAN (R 4.2.0)
#>  miniUI                 0.1.1.1 2018-05-18 [1] CRAN (R 4.2.0)
#>  modelr                 0.1.10  2022-11-11 [1] CRAN (R 4.2.0)
#>  munsell                0.5.0   2018-06-12 [1] CRAN (R 4.2.0)
#>  pillar                 1.8.1   2022-08-19 [1] CRAN (R 4.2.0)
#>  pkgbuild               1.4.0   2022-11-27 [1] CRAN (R 4.2.0)
#>  pkgconfig              2.0.3   2019-09-22 [1] CRAN (R 4.2.0)
#>  pkgload                1.3.2   2022-11-16 [1] CRAN (R 4.2.0)
#>  plotly                 4.10.1  2022-11-07 [1] CRAN (R 4.2.0)
#>  prettyunits            1.1.1   2020-01-24 [1] CRAN (R 4.2.0)
#>  processx               3.8.0   2022-10-26 [1] CRAN (R 4.2.0)
#>  profvis                0.3.7   2020-11-02 [1] CRAN (R 4.2.0)
#>  promises               1.2.0.1 2021-02-11 [1] CRAN (R 4.2.0)
#>  ps                     1.7.2   2022-10-26 [1] CRAN (R 4.2.0)
#>  purrr                * 0.3.5   2022-10-06 [1] CRAN (R 4.2.0)
#>  R6                     2.5.1   2021-08-19 [1] CRAN (R 4.2.0)
#>  RColorBrewer           1.1-3   2022-04-03 [1] CRAN (R 4.2.0)
#>  Rcpp                   1.0.9   2022-07-08 [1] CRAN (R 4.2.0)
#>  readr                * 2.1.3   2022-10-01 [1] CRAN (R 4.2.0)
#>  readxl                 1.4.1   2022-08-17 [1] CRAN (R 4.2.0)
#>  remotes                2.4.2   2021-11-30 [1] CRAN (R 4.2.0)
#>  reprex                 2.0.2   2022-08-17 [1] CRAN (R 4.2.0)
#>  rlang                  1.0.6   2022-09-24 [1] CRAN (R 4.2.0)
#>  rmarkdown              2.18    2022-11-09 [1] CRAN (R 4.2.0)
#>  rstudioapi             0.14    2022-08-22 [1] CRAN (R 4.2.0)
#>  rvest                  1.0.3   2022-08-19 [1] CRAN (R 4.2.0)
#>  sass                   0.4.4   2022-11-24 [1] CRAN (R 4.2.0)
#>  scales                 1.2.1   2022-08-20 [1] CRAN (R 4.2.0)
#>  sessioninfo            1.2.2   2021-12-06 [1] CRAN (R 4.2.0)
#>  shiny                  1.7.3   2022-10-25 [1] CRAN (R 4.2.0)
#>  stringi                1.7.8   2022-07-11 [1] CRAN (R 4.2.0)
#>  stringr              * 1.4.1   2022-08-20 [1] CRAN (R 4.2.0)
#>  tibble               * 3.1.8   2022-07-22 [1] CRAN (R 4.2.0)
#>  tidyr                * 1.2.1   2022-09-08 [1] CRAN (R 4.2.0)
#>  tidyselect             1.2.0   2022-10-10 [1] CRAN (R 4.2.0)
#>  tidyverse            * 1.3.2   2022-07-18 [1] CRAN (R 4.2.0)
#>  timechange             0.1.1   2022-11-04 [1] CRAN (R 4.2.0)
#>  tzdb                   0.3.0   2022-03-28 [1] CRAN (R 4.2.0)
#>  urlchecker             1.0.1   2021-11-30 [1] CRAN (R 4.2.0)
#>  usethis                2.1.6   2022-05-25 [1] CRAN (R 4.2.0)
#>  utf8                   1.2.2   2021-07-24 [1] CRAN (R 4.2.0)
#>  vctrs                  0.5.1   2022-11-16 [1] CRAN (R 4.2.0)
#>  viridisLite            0.4.1   2022-08-22 [1] CRAN (R 4.2.0)
#>  vistime              * 1.2.3   2022-10-16 [1] CRAN (R 4.2.0)
#>  withr                  2.5.0   2022-03-03 [1] CRAN (R 4.2.0)
#>  xfun                   0.35    2022-11-16 [1] CRAN (R 4.2.0)
#>  xml2                   1.3.3   2021-11-30 [1] CRAN (R 4.2.0)
#>  xtable                 1.8-4   2019-04-21 [1] CRAN (R 4.2.0)
#>  yaml                   2.3.6   2022-10-18 [1] CRAN (R 4.2.0)
#> 
#>  [1] /Users/sebastiansaueruser/Rlibs
#>  [2] /Library/Frameworks/R.framework/Versions/4.2/Resources/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────