Я хочу отображать дополнительную серию данных при наведении курсора на высокие диаграммы, которые я использую на своей гибкой панели управления. Я понимаю, что это можно сделать с помощью функции «форматирования» highcharts. Мне удалось сохранить дополнительную серию в случайной переменной в моих данных серии и вызвать ее с помощью функции форматирования, но я получаю полный список для каждой полосы на моем графике высоких диаграмм. Мне нужны индивидуальные значения для каждой точки.
Вот код:
highchart() %>%
hc_chart(type = "bar") %>%
hc_title(text = "Bottom Five Suppliers (Overall)") %>%
hc_xAxis(categories = suppliers$Supplier[20:24], tickInterval = 1) %>%
hc_yAxis(tickInterval = 1) %>% hc_add_series(data = suppliers$x[20:24],
name = "Overall Supplier Score (Weighted)", resp = suppliers$respondents[20:24]) %>%
hc_tooltip(valueDecimals = 2, useHTML = TRUE, formatter = JS("function()
{return this.series.options.resp;}"))
%>% hc_exporting(enabled = TRUE) %>% hc_plotOptions(
series = list(
boderWidth = 0,
dataLabels = list(enabled = TRUE)
))
Это результат:
Как видите, данные, появляющиеся при наведении курсора на диаграмму, отличаются от осей x или y. Однако он отображает полные данные для всех 5 столбцов, а не отображает одно значение для каждого столбца.
Я знаю, что мне нужно написать функцию JavaScript, чтобы сопоставить значения с остальной частью фрейма данных, но я не уверен, как это сделать (к сожалению, у меня нет большого опыта или знаний JS).
Если я использую серию, используемую по оси x или y, тогда она работает нормально (с использованием this.x или this.y), но использование дополнительной серии, хранящейся в случайной переменной, не работает без this.series.options.seriesname и затем он также возвращает всю серию.
ИЗМЕНИТЬ
Вот код для воспроизведения этого примера:
library (highcharter)
library (dplyr)
Suppliers= data.frame(Supplier = c('one','two','three','four','five'),
Value = c(1,2,3,4,5), respondents= c(5,1,4,12,5),
Category = c('cat1','cat2','cat3','cat4','cat5'))
highchart() %>%
hc_chart(type = "bar") %>%
hc_title(text = "Bottom Five Suppliers (Overall)") %>%
hc_xAxis(categories = Suppliers$Supplier, tickInterval = 1) %>%
hc_yAxis(tickInterval = 1) %>% hc_add_series(data = Suppliers$Value,
name = "Overall Supplier Score (Weighted)", resp = Suppliers$respondents) %>%
hc_tooltip(valueDecimals = 2, useHTML = TRUE, formatter = JS("function()
{return this.series.options.resp;}"))
%>% hc_plotOptions(
series = list(
boderWidth = 0,
dataLabels = list(enabled = TRUE)
))
Когда вы наводите курсор на созданную диаграмму высоких значений, она показывает полную серию респондентов вместо отдельных значений.