Question Ligne droite entre les grappes dans Graphviz


J'essaie d'avoir un avantage entre les clusters dans Graphviz où le bord n'affecte pas le classement.

Cela semble bien:

digraph {
  subgraph clusterX {
    A    
    B
  }

  subgraph clusterY {
    C
    D
  } 

  A -> B
  B -> C [constraint=false]
  C -> D
}

Cependant, lorsque j'ajoute une étiquette à la C -> D bord le B -> C edge essaie de contourner ladite étiquette (qui a l'air moche).

digraph {
  subgraph clusterX {
    A    
    B
  }

  subgraph clusterY {
    C
    D
  } 

  A -> B
  B -> C [constraint=false]
  C -> D [label=yadda]
}

Toute idée de comment je peux garder le bord de B à C tout droit?


18
2018-06-09 14:31


origine


Réponses:


Le moyen le plus simple d'y parvenir est d'ajouter splines=false au fichier de points - cela force le rendu des bords à être des lignes droites:

digraph {
 splines=false;
 subgraph clusterX {
    A;
    B;
 }

 subgraph clusterY {
    C;
    D;
 } 

 A -> B;
 B -> C [constraint=false];
 C -> D [label=yadda];
}

Sortie:

graphviz output


28
2018-01-12 22:09



Vous pouvez utiliser cette version:

digraph G { 
  subgraph cluster_X {
    A [ pos = "0,1!" ]; 
    B [ pos = "0,0!" ];
  } 
  subgraph cluster_Y {
    C [ pos = "1,1!" ]; 
    D [ pos = "1,0!" ];
  } 
  A -> B
  B -> C[label="yadda"]
  C -> D;
}

Ensuite, vous utilisez neato (pas de point)

neato -Tpng -oyadda.png yadda.dot

Et le résultat est:

enter image description here


3
2017-08-03 19:52