A library for creating time-based charts, like Gantt or timelines. Possible outputs include ggplot
s, plotly
graphs, Highcharts
or data.frames. Results can be used in the RStudio viewer pane, in R Markdown documents or in Shiny apps. In the interactive outputs created by vistime()
and hc_vistime()
you can interact with the plot using mouse hover or zoom. Timelines and their components can afterwards be manipulated using ggplot::theme()
, plotly_build()
or hc_*
functions (for gg_vistime()
, vistime()
or hc_vistime()
, respectively). When choosing the data.frame
output, you can use your own plotting package for visualizing the graph.
I'm glad if this can help people save time and effort, like this feedback suggests:
If you find vistime useful, please consider supporting its development:
Feedback welcome: [email protected]
To install the package from CRAN, type the following in your R console:
install.packages("vistime")
This package vistime
provides four main functions, the first three allow you to draw a timeline with Plotly, Highcharts or ggplot2, the last one
outputs the pure optimized data frame ready for plotting.
timeline_data <- data.frame(event = c("Event 1", "Event 2"),
start = c("2020-06-06", "2020-10-01"),
end = c("2020-10-01", "2020-12-31"),
group = "My Events")
vistime(timeline_data)
timeline_data <- data.frame(event = c("Event 1", "Event 2"),
start = c("2020-06-06", "2020-10-01"),
end = c("2020-10-01", "2020-12-31"),
group = "My Events")
hc_vistime(timeline_data)
This is facilitated by the highcharter
package, so, this package needs to be installed before attempting to produce any hc_vistime()
output.
timeline_data <- data.frame(event = c("Event 1", "Event 2"),
start = c("2020-06-06", "2020-10-01"),
end = c("2020-10-01", "2020-12-31"),
group = "My Events")
gg_vistime(timeline_data)
timeline_data <- data.frame(event = c("Event 1", "Event 2"),
start = c("2020-06-06", "2020-10-01"),
end = c("2020-10-01", "2020-12-31"),
group = "My Events")
vistime_data(timeline_data)
#> event start end group tooltip col subplot y
#> 1 Event 1 2020-06-06 2020-10-01 My Events from <b>2020-06-06</b> to <b>2020-10-01</b> #8DD3C7 1 1
#> 2 Event 2 2020-10-01 2020-12-31 My Events from <b>2020-10-01</b> to <b>2020-12-31</b> #FFFFB3 1 1
You want to use this for the intelligent y-axis assignment depending on overlapping of events (this can be disabled with optimize_y = FALSE
).
During COVID-19 2020, @wlhamilton used gg_vistime()
for visualizing patient ward movements as timelines in order to investigate possible hospital acquired infections. See his github for the code.
There is a vignette for each of the three functions of the package where they are explained in detail:
vistime()
for interactive Plotly output: Link to manualgg_vistime()
for static ggplot2 output: Link to manualhc_vistime()
for interactive Highcharts output: Link to manual