1

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

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计算差异并不重要:-)

这是条形图:

在此处输入图像描述

谢谢!

4

1 回答 1

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)

在此处输入图像描述

我希望这有帮助:)

于 2018-07-02T20:50:25.420 回答