2
샘플 코드를 실행하십시오.R Shiny : ggplot2로 브러시 기능의 이상한 동작
분산 형 플롯에서 점을 선택하면 선택한 점이 차트에서 삭제됩니다. 그것은 대부분 잘 작동합니다. 차트의 코너 근처에서 몇 포인트를 선택하면,이 포인트는 빠른 이중 셀프 업데이트 이후에 다시 나타납니다.
차트의 가운데 부분에있는 점은 제대로 작동합니다.
방법이 이상한 행동을 설명하기 위해?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)
IT는 brush_1
이벤트가 두 번 트리거 것 같다 그 이상한 점을 선택하면 줄거리가 재설정됩니다. 플롯에 수정 제한을 설정할 수 있습니다
감사합니다. 그것은 완벽. – John