2017-10-03 9 views
1

Je peux utiliser ce code pour générer un graphique:Comment aligner des colonnes de nœuds et envelopper des bords?

fichier test.dot:

digraph g { 
    {rank=same; 1 -> 2 -> 3 -> 4} 
    {rank=same; 5 -> 6 -> 7 -> 8} 
    {rank=same; 9 -> 10 -> 11 -> 12} 

    4 -> 5 
    8 -> 9 
} 

dot test.dot -Tpng -o test.png

sortie:

enter image description here

Cependant, je veux les rangs des noeuds être aligné plus comme ceci:

enter image description here

Est-il possible de faire un graphique en forme comme celui-ci en graphviz dot?

Répondre

4

Utiliser un bord invisible avec un poids fort:

digraph g 
{ 
    splines="ortho" 

    // connect the left most nodes and keep them one below the other 
    1 -> 5 -> 9[ style = invis, weight = 10 ]; 

    // do your stuff 
    { rank = same; 1 -> 2 -> 3 -> 4 } 
    { rank = same; 5 -> 6 -> 7 -> 8 } 
    { rank = same; 9 -> 10 -> 11 -> 12 } 

    4 -> 5; 
    8 -> 9; 
} 

yields 

enter image description here