HighcharteR工具提示

时间:2018-06-07 09:09:09

标签: highcharts callback formatter r-highcharter

我想在工具提示中显示两个条形图的差异。我想我可以通过格式化程序功能访问这些值。但是我尝试的一切都行不通。这是我的代码:

highchart() %>%
    hc_add_series(Marktvolumen$`2017`, type = "column", name = "2017") %>%
    hc_add_series(Marktvolumen$`2018`, type = "column", name = "2018") %>%
    hc_add_series(Marktvolumen$Aenderung, type = "column", name = "change", visible=FALSE, showInLegend=FALSE) %>%
    hc_xAxis(categories = Marktvolumen$Familie) %>%
    hc_plotOptions(series = list(showInLegend = TRUE, dataLabels = list(enabled = TRUE, color = "#FFFFFF"))) %>%
    hc_tooltip(formatter = JS(paste0('function () {
                       return this.y[1] - this.y[0];
    }')))

差异已经是图表对象,但不可见(Marktvolumen$Aenderung)。对我而言,如果我通过系列对象显示差异或通过javascript计算它并不重要: - )

这是条形图:

enter image description here

谢谢!

1 个答案:

答案 0 :(得分:0)

您正在使用this.y,当不共享工具提示时将使用此提示(这意味着每个列都有自己的工具提示)。 在您的情况下,应该共享工具提示!在函数hc_tooltip中,shared参数应为TRUE,因为两列(在每个“ Familie”中)应共享相同的工具提示。

然后,您可以按照以下说明使用变量this.points [i] .y:https://api.highcharts.com/highcharts/tooltip.formatter

下面是代码(没有Marktvolumen$Aenderung):

Marktvolumen <- data.frame(c(72.451, 56280.439, 9020.455),
                           c(21.978, 59044.848, 9752.833),
                           c("Kuchen", "Riegel", "Süßgebäck"))
names(Marktvolumen) <- c('2017', '2018', "Familie")

highchart() %>%
  hc_add_series(Marktvolumen$`2017`, type = "column", name = "2017") %>%
  hc_add_series(Marktvolumen$`2018`, type = "column", name = "2018") %>%
  hc_xAxis(categories = Marktvolumen$Familie) %>%
  hc_plotOptions(series = list(showInLegend = TRUE,
                               dataLabels = list(enabled = TRUE,
                                                 color = "#FFFFFF"))) %>%
  hc_tooltip(formatter = JS(paste0('function ()
                                   {return "Änderung: " +
                                   (this.points[1].y - this.points[0].y);}')
                            ), shared = TRUE)

enter image description here

我希望这会有所帮助:)