我正在使用plotly::ggplotly()
,我需要用户既能够选择一个点,也能够选择多个点刷。我希望两个选择选项并行存在。用户应该能够单击一个点并套索选择几个点,并且应该记录这两条信息。
我遇到的问题是,如果我点击一个点,那么套索选择就会被重置。但相反的情况并非如此:如果我套索选择然后单击一个点,那么两者都被保留。
这是这个问题的 GIF
这是我的代码:
library(shiny)
library(plotly)
ui <- fluidPage(
plotlyOutput("plot"),
verbatimTextOutput("click"),
verbatimTextOutput("brush")
)
server <- function(input, output, session) {
nms <- row.names(mtcars)
output$plot <- renderPlotly({
p <- ggplot(mtcars, aes(x = mpg, y = wt, key = nms)) + geom_point()
ggplotly(p) %>% layout(dragmode = "lasso")
})
output$click <- renderPrint({
d <- event_data("plotly_click")
if (!is.null(d)) d
})
output$brush <- renderPrint({
d <- event_data("plotly_selected")
if (!is.null(d)) d
})
}
shinyApp(ui, server)
重现:
- 单击单个点
- 做一个套索选择
- 两者目前都可见
- 单击不同的点
- 现在套索选择信息不见了
- 再次进行套索选择,两者都再次可见