Событие щелчка на карте дерева highcharter (R блестит)

На основании ответа на этот вопрос: Highcharter - Интерактивная круговая диаграмма - Как получить название категории из фрагмента, который был выбран на круговой диаграмме в Shiny?, я пытаюсь зафиксировать вывод события щелчка на древовидной карте highcharter в приложении R Shiny .

Я думаю, мне просто нужно правильное имя, чтобы заменить event.point.name в этой функции javascript:

function(event) {Shiny.onInputChange('treemapclick', event.point.name);} 

но я не уверен, где искать.

Заранее благодарим за вашу щедрость!

library(shiny)
library(highcharter)
library(gapminder)


ui <- fluidPage(
  column(12, highchartOutput("hcontainer",height = "300px")),
  column(12, textOutput("clicked")))

server <- function(input, output){
  
  click_js <- JS("function(event) {Shiny.onInputChange('treemapclick', event.point.name);}")
  
  output$hcontainer <- renderHighchart({  
      
        gapminder::gapminder %>%
        filter(year  == 2007) %>% 
        highcharter::data_to_hierarchical(group_vars = c(continent, country), size_var = pop) %>% 
        hchart(type = "treemap") %>% 
        hc_plotOptions(events = list(click = click_js))


  })
  
  output$clicked <- renderText({
    input$treemapclick
  })
  
}

shinyApp(ui, server)

Событие клика по карте дерева


person Kene    schedule 16.02.2021    source источник


Ответы (1)


Разобрался с проблемой! Проблема заключалась не в переменной event.point.name, а в параметрах сюжета. Изменив его на это:

 hc_plotOptions(treemap = list(events = list(click = click_js)))

делает свое дело.

Рабочий представитель:

library(shiny)
library(highcharter)
library(gapminder)


ui <- fluidPage(
  column(12, highchartOutput("hcontainer",height = "300px")),
  column(12, textOutput("clicked")))

server <- function(input, output){
  
  click_js <- JS("function(event) {Shiny.onInputChange('treemapclick', event.point.name);}")
  
  output$hcontainer <- renderHighchart({  
      
        gapminder::gapminder %>%
        filter(year  == 2007) %>% 
        highcharter::data_to_hierarchical(group_vars = c(continent, country), size_var = pop) %>% 
        hchart(type = "treemap") %>% 
        hc_plotOptions(treemap = list(events = list(click = click_js)))

  })
  
  output$clicked <- renderText({input$treemapclick  })
  
}

shinyApp(ui, server)
person Kene    schedule 16.02.2021