[英]Deselect edges programmatically in Shiny in visNetwork
我想在 Shiny 的 visNetwork 网络中取消选择边。 visSetSelection
应该工作,但它没有:如果我手动选择一个边缘,然后按下按钮,边缘保持选中状态。 我不知道还有什么其他方法可以做到。 这个https://github.com/almende/vis/issues/1670建议使用 visSelectEdges 并将 id 设置为 NULL 但这也没有效果。 有任何想法吗?
require(shiny)
require(visNetwork)
server <- function(input, output) {
output$network <- renderVisNetwork({
# minimal example
nodes <- data.frame(id = 1:3)
edges <- data.frame(from = c(1,2), to = c(1,3))
visNetwork(nodes, edges)
})
observeEvent("deselect",{
visNetworkProxy("network") %>%
visSetSelection(edgesId = NULL,unselectAll = T)
})
}
ui <- fluidPage(
visNetworkOutput("network"),
actionButton("deselect","Deselect")
)
shinyApp(ui = ui, server = server)
您可以使用visUnselectAll
(请参阅此处)。 此外,您需要在observeEvent
的条件下用input$deselect
替换"deselect"
。
require(shiny)
require(visNetwork)
server <- function(input, output) {
output$network <- renderVisNetwork({
# minimal example
nodes <- data.frame(id = 1:3)
edges <- data.frame(from = c(1,2), to = c(1,3))
visNetwork(nodes, edges)
})
observeEvent(input$deselect, {
visNetworkProxy("network") %>%
visUnselectAll()
})
}
ui <- fluidPage(
visNetworkOutput("network"),
actionButton("deselect","Deselect")
)
shinyApp(ui = ui, server = server)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.