Bitte führen Sie den Beispielcode aus.R Shiny: Seltsames Verhalten der Pinselfunktionalität mit ggplot2
Wenn ich Punkte in den Streudiagrammen auswähle, werden diese ausgewählten Punkte aus den Diagrammen gelöscht. Es funktioniert meistens gut, außer dass, wenn ich einige Punkte in der Nähe der Ecken der Charts auswähle, diese Punkte nach einer schnellen Doppel-Selbstaktualisierung zurückkommen.
Für die Punkte im mittleren Teil der Charts funktioniert es einfach.
Wie dieses seltsame Verhalten erklären?
library(ggplot2)
library(shiny)
server <- function(input, output) {
vals = reactiveValues(keeprows = TRUE)
observeEvent(input$brush_1,{
cat("---------------\n")
print("brush_1")
Res = brushedPoints(mtcars,brush = input$brush_1,allRows = TRUE)
vals$keeprows = !Res$selected_
})
observeEvent(input$brush_2,{
cat("---------------\n")
print("brush_2")
Res = brushedPoints(mtcars,brush = input$brush_2,allRows = TRUE)
vals$keeprows = !Res$selected_
})
D = reactive({
print("D")
mtcars[vals$keeprows,]
})
output$p1 = renderPlot({
print("plot_1")
X = D()
ggplot(X,aes(x=mpg,y=cyl))+geom_point()
})
output$p2 = renderPlot({
print("plot_2")
ggplot(D(),aes(x=mpg,y=wt))+geom_point()
})
output$L = renderPrint({
Res = brushedPoints(mtcars,brush = input$brush_1,allRows = TRUE)
Res
})
}
ui <- fluidPage(
splitLayout(plotOutput("p1",brush = "brush_1"),plotOutput("p2",brush = "brush_2"))
,
verbatimTextOutput("L")
)
shinyApp(ui = ui, server = server)
Es scheint, dass das brush_1
Ereignis zweimal ausgelöst wird und die Handlung wird zurückgesetzt, wenn diese seltsamen Punkte ausgewählt werden.
Danke. Es ist perfekt. – John