visNetwork - highlightNearest - показывать только соединенные ребра с выбранным узлом

Я смотрю в сети Twitter сенаторов Соединенных Штатов. Я ищу возможность выбрать сенатора (с помощью nodeIdSelection) и выделить только узлы, подключенные к этому выбранному узлу, и выделить только эти соединенные ребра (это то, что я не могу понять). Я не хочу ребер между другими подключенными узлами показано. Когда я устанавливаю степень = 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)

Этот код дает мне:

Когда я устанавливаю степень = 1, отображаются правильные связанные узлы, но также имеются вторичные соединенные ребра между другими узлами, НЕ подключенными к выбранному узлу, также показанному. Поскольку имеется 100 сенаторов и более 2000 соединений, сюжет слишком "занят", чтобы можно было представить эти вторичные соединения.

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)

Этот код дает мне:

Как видите, сюжет становится слишком занятым. Есть ли способ получить результат, показанный со степенью = 0, с точки зрения только отображения ребер, соединенных с выбранным узлом, но также и отображения подключенных узлов?

Большое спасибо за любую помощь. Извините, если изображения немного трудно читать. Еще раз спасибо.

2 ответа

Ты хочешь 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))

Создано в 2018-05-26 пакетом представлением (v0.2.0).

Чтобы ответить на вопрос ОП, вы можете установить все ребра, не связанные с выбранными узлами, какhideColorс использованиемvisEdges(color = list(inherit = "to")):

      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(inherit="to")) %>%
  visNodes(color = "blue") %>%
  visOptions(highlightNearest = list(enabled = TRUE, degree = 1,
                                     hideColor = "rgba(0,0,0,0.05)",
                                     labelOnly = FALSE, hover = TRUE),
             nodesIdSelection = list(selected = 6))

Из документации,inheritможно установить на"to", , и логическое значение.

Значение по умолчанию:"from", что приводит к поведению OP:

      visNetwork(vis_g$nodes, vis_g$edges) %>%
  visIgraphLayout(layout = "layout_with_fr") %>%
  visEdges(color = list(inherit = "from")) %>%
  visNodes(color = "blue") %>%
  visOptions(highlightNearest = list(enabled = TRUE,
                                     hideColor = "rgba(0,0,0,0.05)"),
             nodesIdSelection = list(selected = 6))

"both"устанавливает края узла как плавный переход между цветами узла:

      visNetwork(vis_g$nodes, vis_g$edges) %>%
  visIgraphLayout(layout = "layout_with_fr") %>%
  visEdges(color = list(inherit = "both")) %>%
  visNodes(color = "blue") %>%
  visOptions(highlightNearest = list(enabled = TRUE,
                                     hideColor = "rgba(0,0,0,0.05)"),
             nodesIdSelection = list(selected = 6))

Другие вопросы по тегам