2

我在 R 中使用 visNetwork 来生成层次网络图。我希望在选择节点时突出显示的路径遵循用户定义的规则(EG,添加到数据集。)请按照下面的示例进行操作。

library(tidyverse)
library(visNetwork)

nodes = data.frame(id = 1:7, level = c(1, 2, 3, 3, 4, 2,1))
edges = data.frame(from = c(1, 2, 2, 4, 6,7,7), to = c(2, 3, 4, 5, 4,6,2))

visNetwork(nodes, edges) %>% 
visHierarchicalLayout() %>% 
visEdges(arrows = "to") %>% 
visOptions(highlightNearest = list(enabled = TRUE, algorithm = "hierarchical",
                                   degree = n_distinct(nodes$level))) %>%
visHierarchicalLayout(direction = "DU") 

此代码生成以下网络图

                                   

选择节点1时,我得到下面的左图;选择节点 7 时,我得到下面的右图。IE,突出显示跟随所有箭头到顶部。

我想找到一种方法来添加节点/边缘数据以用户定义突出显示的行为?EG, when selecting 7 (in the diagram on the right above), it excludes highlighting 2 and 3.

我看到了两种可能的选择:
1. 添加到数据中,使其产生两种类型的边;1 仅用于显示,另一个用于突出显示路径。
2.在数据中添加额外的列,以便它在选择每个节点时以某种方式知道如何突出显示路径

对选项甚至包的其他建议持开放态度。

谢谢

4

0 回答 0