2017-08-16 58 views
1

我创建图形结构[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) 

期待它出现这样。

Expected Output

但是实际的输出是这样的

Actual Output

的节点位置是不正确的,我不能用手移动节点,这使得它很难解释。需要帮助根据上面的预期输出重新排列节点。

+0

问题在于这样一个事实:'cat'和'dog'连接到同一个'rice','fish','bread'节点。 – emilliman5

+0

@ emilliman5,你说得对,我有同样的感觉。我已经用你的建议更新了我的问题。 –

回答

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) 

enter image description here

+0

不错,谢谢:)。 –