2017-05-29 5 views
0

Comment puis-je placer tout "parallélogramme" [voir mon code] sur le dessus des boîtes S avec graphviz dot langage? Donc, fondamentalement, la sortie devrait ressembler à une ligne droite avec tous les M1 M2 et Mn en haut du graphique.graphviz modifier l'orientation d'une forme spécifique dans un digramme

sortie réelle: enter image description here sortie désiré: enter image description here

digraph ER { 

node [group=M; shape=parallelogram]; M1; M2; M_n; 
node [group=I, shape=none]; "..."; 
node [group=V, shape=egg]; IV; V1; V2; 
node [group=C, shape=box]; "S1"; "S2"; "S_n"; f; 
node [group=F, shape=hexagon]; "FINAL"; 


    IV -> "S1"; 
    M1 -> "S1"; 
    "S1" -> V1; 
    V1 -> "S2"; 
    M2 -> "S2"; 
    "S2" -> V2; 
    V2 -> "..."; 
    "..." -> "S_n"; 
    M_n -> "S_n"; 
    "S_n" -> f; 
    f -> "FINAL" 

    rankdir=LR; 
} 

Répondre

1

L'attribut rank permet de contrainte deux (ou plus) des noeuds du même subgraph au même rang. Dans cet esprit:

digraph ER { 

rankdir=LR; 

node [shape=none]; "..."; 
node [shape=egg]; IV; V1; V2; 
node [shape=box]; f; 
{rank=same; "S1"; M1[shape=parallelogram];} 
{rank=same; "S2"; M2[shape=parallelogram];} 
{rank=same; "S_n"; M_n[shape=parallelogram];} 
node [shape=hexagon]; "FINAL"; 

    IV -> "S1"; 
    M1 -> "S1"; 
    "S1" -> V1; 
    V1 -> "S2"; 
    M2 -> "S2"; 
    "S2" -> V2; 
    V2 -> "..."; 
    "..." -> "S_n"; 
    M_n -> "S_n"; 
    "S_n" -> f; 
    f -> "FINAL" 

} 
+0

Merci beaucoup cela fonctionne comme un charme – S12000