library(tidyverse)
library(lubridate)
library(readxl)
library(highcharter) # current github version (not release version)
Import Excel
df <- readxl::read_xlsx("BECS Safe Project.xlsx") %>%
dplyr::mutate(
Start = as.Date(Start),
Finish = as.Date(Finish),
Duration = as.numeric(strsplit(Duration, "d")), # strip away 'd'
`Task ID` = as.character(`Task ID`),
Predecessors = gsub(" ", "", Predecessors, fixed = TRUE) # strip whitespace
) %>%
dplyr::mutate(
dependency = strsplit(Predecessors, ",") # convert to vector
) %>%
dplyr::mutate_if(is.Date, datetime_to_timestamp) %>%
dplyr::rename(
start = Start,
end = Finish,
name = `Task Name`,
id = `Task ID`
) %>%
dplyr::select(
start, end, name, id, dependency
)
Plot
highchart(type = "gantt") %>%
hc_size(width = NULL, height = 1500) %>%
hc_exporting(
enabled = TRUE, # always enabled
filename = "custom-file-name"
) %>%
hc_add_series(
name = "Program",
data = df
) %>%
hc_rangeSelector(enabled = TRUE) %>%
hc_navigator(
enabled = TRUE,
series = list(
type = 'gantt',
pointPlacement = 0.5,
pointPadding = 0.25
),
yAxis = list(
min = 0,
max = 52,
reversed = TRUE,
categories = c()
)
)