我可以双击visNetwork图中的某个节点以运行功能吗?

问题描述 投票:0回答:1

我有一个带有几个节点的网络图,每个节点都有一些数据,包括ID和名称。我正在像这样构建visNetwork对象:

getDiagramPlot <- function(nodes, edges){
  v <- visNetwork(
    nodes, 
    edges
  ) %>%
    visPhysics(stabilization = TRUE, enabled = TRUE) %>%
    visOptions(highlightNearest = list(enabled = T, degree = 1, hover = F), autoResize = TRUE, collapse = FALSE) %>%
    visEdges(color = list(highlight = "red")) %>% # The colour of the edge linking nodes
    visLayout(improvedLayout = TRUE) %>%
    visEdges(arrows = edges$arrows) %>%
    visInteraction(multiselect = F)
  return(v)
}

我想要的是能够通过管道传递visEvents并在我的代码中调用一个函数,理想情况下将ID作为参数传递。类似于:

testFunction <- function(node_id){
  print(paste("The selected node ID is:", node_id))
}

我在网上看到的示例大多在其示例中使用javascript alert(),但我希望突破javascript并在代码中调用R函数。

任何帮助,我们将不胜感激!先感谢您。

我有一个带有几个节点的网络图,每个节点都有一些数据,包括ID和名称。我正在像这样构建visNetwork对象:getDiagramPlot

r shiny shinydashboard visnetwork
1个回答
0
投票

您可以在JavaScript中使用Shiny.onInputChange将任何内容设置为Shiny输入变量。这可以解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.