试图让节点标签仅显示在已选择的节点上。
我发现了一个类似的问题,它只想在悬停时显示边缘标签。解决方案是这样的:
nodes <- data.frame(id = 1:3, label = 1:3)
edges <- data.frame(from = c(1,2), to = c(1,3), label = "Edge label", font.size = 0)
visNetwork(nodes, edges) %>%
visInteraction(hover = T) %>%
visEvents(hoverEdge = "function(e){
this.body.data.edges.update({id: e.edge, font: {size : 14}});
}") %>%
visEvents(blurEdge = "function(e){
this.body.data.edges.update({id: e.edge, font: {size : 0}});
}")
我试过修改它,但我认为我在 javascript 部分做得不对,我几乎不知道 JS。
nodes <- data.frame(id = 1:3, label = 1:3)
edges <- data.frame(from = c(1,2), to = c(1,3), label = "Edge label", font.size = 0)
visNetwork(nodes, edges) %>%
visInteraction(hover = T) %>%
visEvents(selectNode= "function(e){
this.body.data.nodes.update({id: e.node, font: {size : 14}});
}") %>%
visEvents(deselectNode= "function(e){
this.body.data.nodes.update({id: e.node, font: {size : 0}});
}")
这反而会导致每次我选择或取消选择一个节点时都会创建一个新节点。虽然坐下来点击它们是一种让我的 Rsession 崩溃的有趣方式,但不幸的是它并没有解决我的问题。
我确信这是一个简单的解决方法,但我已经阅读了 visNetwork 文档,但我只是没有找到我需要的东西。帮助表示赞赏!