Я уже некоторое время борюсь с конкретной проблемой, и ни один из существующих (очень похожих) ответов по Stackoverflow не дает мне того, где я должен быть.
Я просто хочу добавить строковую переменную в качестве дополнительных данных к всплывающей подсказке на диаграмме рассеяния старших диаграмм. То, что я хочу, похоже на этот вопрос: Дополнительные данные к всплывающей подсказке
Я немного изменил код из этого вопроса, чтобы создать работающий пример. Проблема в том, что я не могу получить строковые переменные (которые анализируются как числа, если они являются факторами) для отображения во всплывающей подсказке.
library("dplyr")
library("highcharter")
data<- data.frame(Company = c("A", "A", "A", "B", "B", "B"),
Country = as.vector(c("A", "D", "F", "B", "B", "B")),
Year = c(1,2,3,1,2,3),
Value1 = c(100, 150, 170, 160, 150, 180),
Value2 = c("hi", 1, 7, 6, 5, 4), stringsAsFactors = FALSE)
data<- data %>%
group_by(name = Company) %>%
do(data = .$Value1, Value2 = .$Value2, Country = .$Country)
series<- list_parse(data)
highchart()%>%
hc_chart(type="scatter")%>%
hc_add_series_list(series)%>%
hc_tooltip(formatter= JS("function () { return 'Company: ' +
this.series.name + ' <br /> Value1: ' + this.point.y +
'<br /> Country: ' + this.point.Country ;}"))
Это просто выдает неопределенную подсказку, когда я пытаюсь добавить в 'this.point.Country'.
Я также нашел это: R Highcharter: настройка всплывающей подсказки
Который рекомендует выполнять настройку всплывающей подсказки как часть серии. Однако, когда я делаю это, кажется, что график полностью проваливается, когда я передаю строковую переменную в ряд. Например, это работает, а также позволяет мне передать переменную z в подсказку:
Errors <- data.frame(Average_R = c(90,100,110,131),
Minimum_R = c(50, 30, 45, 65),
Plant_name = c("Place","holder","name","here"),
stringsAsFactors = F)
highchart() %>%
hc_plotOptions(scatter = list(
dataLabels = list(enabled = F),
enableMouseTracking = TRUE
)
) %>%
hc_series(
list(type = "scatter",
name = pollutant,
data = Map(c,y = round(Errors$Average_R,2), z = Errors$Minimum_R))
) %>%
hc_tooltip(formatter = JS(paste0('function() {
return "<span style=\'color:" + this.point.color + "\'>\u25CF</span> " + this.series.name + " : <b>" + this.point.y + "</b> " + this.point.z + "<br/>";
}')))
Результат (не достаточно представителя для размещения прямого изображения)
Но когда я изменяю переменную z в аргументе данных hc_series на строковую переменную Plant_name, весь график завершается неудачей.
У кого-нибудь есть идеи, как это исправить?