我在 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.在数据中添加额外的列,以便它在选择每个节点时以某种方式知道如何突出显示路径
对选项甚至包的其他建议持开放态度。
谢谢