在 visNetwork 的 Shiny 中以编程方式取消选择边
Deselect edges programmatically in Shiny in visNetwork
我想在 Shiny 的 visNetwork 网络中去除select 边缘。 visSetSelection
应该有效,但它不起作用:如果我手动 select 一个边缘,然后按下按钮,边缘保持 selected。我不知道还有什么其他方法可以做到这一点。 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
(参见 here)。另外,在observeEvent
.
的条件下,需要将"deselect"
替换为input$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)
我想在 Shiny 的 visNetwork 网络中去除select 边缘。 visSetSelection
应该有效,但它不起作用:如果我手动 select 一个边缘,然后按下按钮,边缘保持 selected。我不知道还有什么其他方法可以做到这一点。 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
(参见 here)。另外,在observeEvent
.
"deselect"
替换为input$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)