Using hc_add_event_point and hc_add_event_series it is possible extract click and mouse over events from a Highchart within a Shiny app. To extract this information from the chart, input$ variables are created as follows:

paste0("highchart_output", "_", "eventType")
## [1] "highchart_output_eventType"

In the example app below, there are two variables added to the input$ object:

  • input$plot_hc_click
  • input$plot_hc_mouseOver
library(shiny)

if (interactive()) {
  shinyApp(
    ui = fluidPage(
      wellPanel("mouseOver and click points for additional information"),
      uiOutput("click_ui"),
      uiOutput("mouseOver_ui"),
      highchartOutput("plot_hc")
    ),
    server = function(input, output) {
      df <- data.frame(x = 1:5, y = 1:5, otherInfo = letters[11:15])

      output$plot_hc <- renderHighchart({
        highchart() %>%
          hc_add_series(df, "scatter") %>%
          hc_add_event_point(event = "click") %>%
          hc_add_event_point(event = "mouseOver")
      })

      observeEvent(input$plot_hc, print(paste("plot_hc", input$plot_hc)))

      output$click_ui <- renderUI({
        if (is.null(input$plot_hc_click)) {
          return()
        }

        wellPanel("Coordinates of clicked point: ", input$plot_hc_click$x, input$plot_hc_click$y)
      })

      output$mouseOver_ui <- renderUI({
        if (is.null(input$plot_hc_mouseOver)) {
          return()
        }

        wellPanel("Coordinates of mouseOvered point: ", input$plot_hc_mouseOver$x, input$plot_hc_mouseOver$y)
      })
    }
  )
}