【问题标题】:HighcharteR: plotband and plotline not workingHighcharteR:情节带和情节线不起作用
【发布时间】:2019-04-11 05:36:34
【问题描述】:

我正在尝试在 highcharteR 中绘制一个每日价值系列,在图表中标记一条垂直线(情节线)和一段日期(情节带)。 我研究了几个 SO question 并找到了这个脚本,但我发现了以下问题:

1) 未绘制图带 2) ploline 未绘制 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'))
         )
       )
)

得到的输出是:

任何帮助/建议将不胜感激!

【问题讨论】:

    标签: r r-highcharter


    【解决方案1】:

    您可以尝试使用 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"))
          )
        )
      )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-18
      • 2015-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多