2

我正在查看美国参议员的 Twitter 网络。我希望能够选择一个参议员(使用 nodeIdSelection)并且只突出显示连接到该选定节点的节点并且只突出显示这些连接的边(这是我无法弄清楚的)。我不希望显示其他连接节点之间的边缘。当我设置 degree = 0 时,这给出了我正在寻找的结果,即仅突出显示连接的边缘,但未显示连接的节点(圆圈)。

visNetwork(nodes, edges) %>% 
 visIgraphLayout(layout = "layout_with_fr") %>% 
 visOptions(highlightNearest = list(enabled = TRUE, algorithm = "all",
                                    degree = 0, hideColor = "rgba(0,0,0,0)"), 
                                    nodesIdSelection = TRUE) %>% 
 visInteraction(navigationButtons = TRUE)

这段代码给了我:

当我设置 degree = 1 时,会显示正确的连接节点,但也会显示未连接到所选节点的其他节点之间的辅助连接边。由于有 100 位参议员和超过 2,000 个连接,因此情节过于“繁忙”,无法通过显示的这些辅助连接进行可视化。

visNetwork(nodes, edges) %>% 
 visIgraphLayout(layout = "layout_with_fr") %>% 
 visOptions(highlightNearest = list(enabled = TRUE, algorithm = "all",
                                    degree = 1, hideColor = "rgba(0,0,0,0)"), 
                                    nodesIdSelection = TRUE) %>% 
 visInteraction(navigationButtons = TRUE)

这段代码给了我:

正如你所看到的,情节变得太忙了。有没有办法让 degree = 0 显示的结果仅显示连接到所选节点的边但也显示连接的节点?

非常感谢您的帮助。抱歉,如果图像有点难以阅读。再次感谢。

4

1 回答 1

1

你想要degree = 1

library(igraph)
g <- graph("Zachary")

library(visNetwork)
vis_g <- toVisNetworkData(g)

visNetwork(vis_g$nodes, vis_g$edges) %>%
  visIgraphLayout(layout = "layout_with_fr") %>%
  visEdges(color = list(highlight = "blue", hover = "blue")) %>%   # explicit edge options
  visOptions(highlightNearest = list(enabled = TRUE, degree = 1,
                                     labelOnly = FALSE, hover = TRUE),
             nodesIdSelection = list(selected = 6))

reprex 包(v0.2.0)于 2018 年 5 月 26 日创建。

于 2018-05-25T20:33:18.210 回答