2017-08-16 4 views
1

Je crée la structure graphiquer visNetwork noeud question la position

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) 

attendant qu'il apparaisse comme ça.

Expected Output

Cependant la sortie réelle est comme celui-ci

Actual Output

Les positions de noeud sont incorrectes, je ne peux pas déplacer manuellement les nœuds et cela le rend très difficile à expliquer. Besoin d'aide pour réorganiser les nœuds en fonction de la sortie attendue ci-dessus.

+0

Le problème réside dans le fait que '' cat' et dog' connecter au même 'rice',' fish', les noeuds 'bread'. – emilliman5

+0

@ emilliman5, ah vous avez raison, j'ai eu le même sentiment. J'ai mis à jour ma question avec votre suggestion. –

Répondre

1

Vous pouvez spécifier le niveau de chaque noeud pour obtenir l'orientation souhaitée.

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

sympa, merci :). –