Как сбросить event_data с помощью блестящей кнопки? - PullRequest
0 голосов
/ 24 июня 2019

в интерактивном plot_ly event_data сохраняет выбранные данные.С помощью приведенного ниже кода можно сбросить event_data двойным щелчком мыши по графику

 output$brush <- renderPrint({
    d <- event_data("plotly_selected")
    if (is.null(d)) "Click and drag events (i.e., select/lasso) appear here (double-click to clear)" else d
  })

Но как сбросить event_data с помощью блестящей кнопки?

Есть ли решение?

1 Ответ

0 голосов
/ 24 июня 2019

Если аргумент source графика установлен на XXX (по умолчанию A), тогда вы должны установить вход plotly_selected-XXX на NULL.Это можно сделать с помощью shinyjs:

library(shiny)
library(plotly)
library(shinyjs)

ui <- fluidPage(
  useShinyjs(),
  actionButton("reset", "Reset"),
  plotlyOutput("plot")
)

server <- function(input, output){
  output[["plot"]] <- renderPlotly({
    df <- data.frame(
      x = c(1,2,1), 
      y = c(1,2,1)
    )
    df %>%
      plot_ly(
        x = ~x,
        y = ~y,
        source = "A",
        type = 'scatter',
        mode = 'markers',
        marker = list(size = 20),
        showlegend = FALSE
      ) 
  })

  observeEvent(input[["reset"]], {
    runjs("Shiny.setInputValue('plotly_selected-A', null);")
  })

  observe({ # just to test
    print(event_data("plotly_selected", source = "A"))
  })

}

shinyApp(ui, server)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...