HighcharteR: plotband и plotline не работают - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь построить дневную серию значений в highcharteR, отмечая вертикальную линию (сюжетную линию) и период дат (сюжетная полоса) на графике. Я исследовал несколько вопросов SO и добрался до этого сценария, но обнаружил следующие проблемы:

1) сюжетная полоса не нанесена 2) не намечается плолин 3) xaxis должны быть даты конвертированы таким образом, что я не понимаю.

Мой воспроизводимый код:

library(highcharter)    

t <- seq(from=as.Date('2017-01-01'), to=as.Date('2018-06-30'), by='days')
d <- runif(n = 546, min = 1, max = 10)
df <- data.frame(t,d)


highchart(type = 'stock')%>%
  hc_add_series(name = "Value", type='line', color = "blue",data = df$d) %>% 
  hc_xAxis(categories = df$t,
           type = 'date',
           plotLines = list(
           list(
               label = list(text = "This is a plotLine"),
           color = "#FF0000",
           width = 5,
           value = datetime_to_timestamp(as.Date('2017-01-10', tz = 'UTC'))
         )
       ),
       plotBands = list(
                      list(
                         label = list(text = "This is a plotBand"),
                         color = "rgba(100, 0, 0, 0.1)",
                         from = datetime_to_timestamp(as.Date('2017-02-01', tz = 'UTC')),
                         to = datetime_to_timestamp(as.Date('2017-02-10', tz = 'UTC'))
         )
       )
)

Полученный результат:

enter image description here

Буду признателен за любую помощь / совет!

1 Ответ

0 голосов
/ 15 февраля 2019

Вы можете попробовать использовать пакет XTS для этого:

library(highcharter)
library(xts)
t <- seq(from = as.Date("2017-01-01"), to = as.Date("2018-06-30"), by = "days")
d <- runif(n = 546, min = 1, max = 10)
df <- data.frame(d)
df <- xts(df, order.by = t)

highchart(type = "stock") %>%
  hc_add_series(name = "Value", type = "line", color = "blue", data = df$d) %>%
  hc_xAxis(
    categories = df$t,
    type = "date",
    plotLines = list(
      list(
        label = list(text = "This is a plotLine"),
        color = "#FF0000",
        width = 5,
        value = datetime_to_timestamp(as.Date("2017-01-10", tz = "UTC"))
      )
    ),
    plotBands = list(
      list(
        label = list(text = "This is a plotBand"),
        color = "rgba(100, 0, 0, 0.1)",
        from = datetime_to_timestamp(as.Date("2017-02-01", tz = "UTC")),
        to = datetime_to_timestamp(as.Date("2017-02-10", tz = "UTC"))
      )
    )
  )

PLOT

...