r Проблема с положением узла visNetwork

Я создаю структуру графа

id    <- c(1,2,3,4,5,6,7,8,9)
label <- c("All", "Cat", "Dog", "Rice","Fish", "Bread","Rice","Fish", "Bread")

nodes <- data.frame(id, label)

edges <- data.frame(
from = c(1,1,2,2,2,3,3,3),
to = c(2,3,4,5,6,7,8,9)
  )



visNetwork(nodes, edges, width = "100%",height = "800px") %>%  visNodes(shape = "square") %>% 
  visEdges(arrows = "to") %>% 
  visInteraction(navigationButtons = TRUE)%>% 
  visHierarchicalLayout(levelSeparation = 200) %>% 
  visOptions(manipulation = TRUE)

ожидая, что он появится вот так.

Ожидаемый результат

Однако фактический результат такой

Фактический вывод

Позиции узлов неверны, я не могу вручную перемещать узлы, и это очень затрудняет объяснение. Нужна помощь в перестановке узлов на основе ожидаемого результата выше.


person Emily Fassbender    schedule 16.08.2017    source источник
comment
Проблема заключается в том, что cat и dog подключаются к одним и тем же узлам rice, fish, bread.   -  person emilliman5    schedule 17.08.2017
comment
@emilliman5, ах, ты прав, у меня было такое же чувство. Я обновил свой вопрос с вашим предложением.   -  person Emily Fassbender    schedule 17.08.2017


Ответы (1)


Вы можете указать уровень для каждого узла, чтобы получить желаемую ориентацию.

library(visNetwork)
id    <- c(1,2,3,4,5,6,7,8,9)
label <- c("All", "Cat", "Dog", "Rice","Fish", "Bread","Rice","Fish", "Bread")

nodes <- data.frame(id, label, level = c( 1,2,2,3,3,3,3,3,3))

edges <- data.frame(
  from = c(1,1,2,2,2,3,3,3),
  to = c(2,3,4,5,6,7,8,9)
)

visNetwork(nodes, edges, width = "100%",height = "800px") %>%  visNodes(shape = "square") %>% 
  visEdges(arrows = "to") %>% 
  visInteraction(navigationButtons = TRUE)%>% 
  visHierarchicalLayout(levelSeparation = 200) %>% 
  visOptions(manipulation = TRUE)

введите здесь описание изображения

person emilliman5    schedule 17.08.2017