Removendo dados de eventos de clique em plotagem
Estou criando um aplicativo brilhante que contém umplotly
gráfico de dispersão. Gostaria que o usuário pudesse clicar no gráfico para gravar um evento usando oevent_data
, mas pode limpar esse evento com o clique de umactionButton
. Alguns exemplos de código podem ser vistos abaixo:
library(shiny)
library(plotly)
ui <- fluidPage(
actionButton("clearEvent", label = "clear event"),
verbatimTextOutput("plotVal"),
plotlyOutput('plot1')
)
server <- function(input, output, session) {
output$plot1 <- renderPlotly({
d <- diamonds[sample(nrow(diamonds), 1000), ]
plot_ly(d, x = ~carat, y = ~price, color = ~carat,
size = ~carat, text = ~paste("Clarity: ", clarity))
})
output$plotVal <- renderPrint({
e <- event_data("plotly_click")
if (is.null(e)) {
NULL
} else {
e
}
})
observeEvent(input[["clearEvent"]], {
e <- NULL
})
}
shinyApp(ui = ui, server = server)
Isso não limpa o evento como eu esperaria, no entanto. Procurando no código porevent_data
mostra que isso é provavelmente porque está armazenado dentro dosession
próprio objeto. Alguma idéia de como posso substituí-lo?
A única coisa parecida com que me deparei éLimpar evento de clique em plotagem mas é muito hacky e parece não funcionar para mim.