Установите определенные значения сгруппированной переменной на гистограмме Highcharter, которые будут отключены по умолчанию - PullRequest
0 голосов
/ 04 августа 2020

Я бы хотел, чтобы определенные значения моей сгруппированной переменной в составной гистограмме Highcharter были по умолчанию не выбраны. Я знаю, что с помощью hc_add_series я могу установить visible = FALSE, но я не создаю свою диаграмму таким образом.

Вот пример набора данных:

responses <- c('Pro','Against','Neutral','Resigned/Accepting','Not Specified')
constituents <- c('dual degree','law only','undergrad only','friend','parent only')
indiv <- rep(1:50)
Name.Change <- sample(responses,50,replace = TRUE)
constituent.type <- sample(constituents,50,replace = TRUE)

demo <- as.data.frame(cbind(indiv,Name.Change,constituent.type))

А вот диаграмма

demo %>% 
  group_by(constituent.type,Name.Change) %>%
  summarise(count = n()) %>%
  hchart(type = "bar",
         hcaes(y = count,
               x = constituent.type,
               group = Name.Change)) %>%
  hc_plotOptions(bar = list(stacking = "percent")) %>%
  hc_tooltip(shared = TRUE)

На сгенерированной диаграмме выбраны все значения Name.Change, и каждое значение можно отменить по желанию. Тем не менее, я хочу, чтобы определенные значения (например, «Нейтральный» и «Не указано») были отключены по умолчанию, чтобы после визуализации диаграммы вам нужно было щелкнуть это значение в легенде, чтобы оно появилось на диаграмме. .

1 Ответ

0 голосов
/ 04 августа 2020

Я думаю, что лучше всего сделать это с помощью chart.events.load, тогда вы можете написать свою собственную JS функцию для этого: https://api.highcharts.com/highcharts/chart.events.load

Здесь вы можете увидеть как это сделать:

responses <- c('Pro','Against','Neutral','Resigned/Accepting','Not Specified')
constituents <- c('dual degree','law only','undergrad only','friend','parent only')
indiv <- rep(1:50)
Name.Change <- sample(responses,50,replace = TRUE)
constituent.type <- sample(constituents,50,replace = TRUE)
demo <- as.data.frame(cbind(indiv,Name.Change,constituent.type))
demo %>% 
  group_by(constituent.type,Name.Change) %>%
  summarise(count = n()) %>%
  hchart(type = "bar",
         hcaes(y = count,
               x = constituent.type,
               group = Name.Change)) %>%
  hc_chart(events = list(load = JS("function() {
  var chart = this;
  chart.series[1].setVisible(false)
  chart.series[2].setVisible(false)
  }"))) %>%
  hc_plotOptions(bar = list(stacking = "percent")) %>%
  hc_tooltip(shared = TRUE)
...