HighcharteR Tooltip - PullRequest
       44

HighcharteR Tooltip

0 голосов
/ 07 июня 2018

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

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 голосов
/ 02 июля 2018

Вы используете this.y, который используется, когда всплывающая подсказка не является общей (это означает, что каждый столбец будет иметь свою собственную подсказку).В вашем случае всплывающей подсказкой следует поделиться!Параметр shared должен иметь значение TRUE в функции hc_tooltip, поскольку оба столбца (в каждом «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

Я надеюсь, что это было полезно :)

...