मैं एक चमकदार ऐप डिज़ाइन कर रहा हूं जिसमें plotly
स्कैटर प्लॉट शामिल है। मैं चाहता हूं कि उपयोगकर्ता event_data
फ़ंक्शन का उपयोग करके किसी ईवेंट को रिकॉर्ड करने के लिए ग्राफ़ पर क्लिक करने में सक्षम हो, लेकिन फिर actionButton
के क्लिक पर उस ईवेंट को साफ़ करने में सक्षम हो। कुछ उदाहरण कोड नीचे देखा जा सकता है:साजिश पर क्लिक करें ईवेंट डेटा
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)
यह घटना की तरह स्पष्ट नहीं है, हालांकि मैं उम्मीद करता हूं। event_data
के लिए कोड में देखकर यह दिखाता है कि यह शायद इसलिए है क्योंकि यह session
ऑब्जेक्ट के भीतर ही संग्रहीत है। कोई विचार है कि मैं इसे कैसे ओवरराइट कर सकता हूं?
एकमात्र समान चीज़ जो मैंने पार की है वह Clear plotly click event है लेकिन यह बहुत हैकी है और मेरे लिए काम नहीं कर रहा है।