Добавление и добавление серии в график после щелчка мышью с помощью библиотеки R HIghcharter

Мне нужно иметь возможность добавить еще один след на графике после щелчка мыши. Я использую веб-фреймворк R Shiny для отображения сюжета в веб-браузере. Серия, которую я хочу добавить, - это точки или любая серия на данный момент.

Мне нужно также нарисовать линии на сюжете. Я хочу щелкнуть начальную точку, конец и линию, проходящую через точки нажатия.

Это то, что я до сих пор.

#############To Update
#if (!require("devtools"))
#install.packages("devtools")
#devtools::install_github("jbkunst/highcharter")

library("shiny")
library("highcharter")

dots<-hc_add_series_scatter(cars$speed, cars$dist)

hc_base <- highchart() %>% 
  hc_xAxis(categories = citytemp$month) %>% 
  hc_add_series(name = "Tokyo", data = citytemp$tokyo) 

ui <- fluidPage(
  h2("Viewer"),
  fluidRow(
    h3(""), highchartOutput("hc_1", width = "100%", height = "800px"),
     h3("Click"), verbatimTextOutput("hc_1_input2")
  )
)
server = function(input, output) {
  output$hc_1 <- renderHighchart({
       hc_base %>% 
          hc_add_theme(hc_theme_ffx())%>%
                 hc_tooltip(backgroundColor="skyblue",crosshairs = TRUE, borderWidth = 5, valueDecimals=2)%>%
                      hc_add_event_series(series="dots", event = "click")
})
output$hc_1_input2 <- renderPrint({input$hc_1_click })
}
shinyApp(ui = ui, server = server)

Любая помощь будет принята с благодарностью.

1 ответ

Это может быть один из способов сделать это:

library(shiny)
library(highcharter)


hc_base <- highchart() %>% 
  hc_xAxis(categories = citytemp$month) %>% 
  hc_add_series(name = "Tokyo", data = citytemp$tokyo) 

ui <- fluidPage(
  h2("Viewer"),
  fluidRow(
    h3(""), highchartOutput("hc_1", width = "100%", height = "800px"),
    h3("Click"), verbatimTextOutput("hc_1_input2")
  )
)
server = function(input, output) {
  output$hc_1 <- renderHighchart({
    hc_base %>% 
      hc_add_theme(hc_theme_ffx())%>%
      hc_tooltip(backgroundColor="skyblue",crosshairs = TRUE, borderWidth = 5, valueDecimals=2)%>%
      hc_add_event_point(event = "click")
  })

  observeEvent(input$hc_1_click,{
    output$hc_1 <- renderHighchart({
      hc_base %>% 
        hc_add_theme(hc_theme_ffx())%>%
        hc_tooltip(backgroundColor="skyblue",crosshairs = TRUE, borderWidth = 5, valueDecimals=2)%>%
        hc_add_series_scatter(cars$speed, cars$dist)
    })

  })

  output$hc_1_input2 <- renderPrint({input$hc_1_click })
}
shinyApp(ui = ui, server = server)

Надеюсь, поможет!

Другие вопросы по тегам