Search code examples
rr-highcharter

Cannot get Highcharter to plot time series


Trying to plot some time series data with Highcharter

The data is as the following:

time <- c("2018-04-23 10:14:39 UTC", "2018-04-23 10:16:41 UTC", "2018-04-23 10:16:42 UTC", "2018-04-23 10:16:51 UTC", "2018-04-23 10:16:54 UTC", "2018-04-23 10:18:23 UTC")
min <- c(0.00020522, 0.00020520, 0.00020517, 0.00020500, 0.00020500, 0.00020522)
max <- c(0.00020527, 0.00020525, 0.00020517, 0.00020550, 0.00020500, 0.00020522)

dff <- data.frame(min, max) 
dff$time <- as.POSIXct(time)
tib <- as_tibble(dff)

All the code variants below produce "No data to display" message, same on Linux and Windows:

hchart(tib, type = "errorbar", hcaes(x = time, ymin = min, ymax = max))
highchart() %>% hc_add_series(tib, "errorbar", hcaes(x = time, ymin = min, ymax = max))
hchart(tib, type = "errorbar", hcaes(x = datetime_to_timestamp(time), ymin = min, ymax = max))
highchart() %>% hc_add_series(tib, "errorbar", hcaes(x = datetime_to_timestamp(time), ymin = min, ymax = max))

UPDATE

Was able to plot "line" by transforming the time variable with datetime_to_timestamp as advised here:

highchart() %>% hc_add_series(tib, "line", hcaes(x = datetime_to_timestamp(time), y = min))
hchart(tib, type = "line", hcaes(x = datetime_to_timestamp(time), y = min))

At the same time, the error bar ggplot code works fine:

ggplot() +   geom_errorbar(data = tib, aes(x = time, ymin = min, ymax = max))

Solution

  • That was it:

    highchart() %>% 
      hc_add_series(data = tib, "errorbar", hcaes(x = datetime_to_timestamp(time), low = min, high = max))  %>%
      hc_xAxis(type = 'datetime')