Pourquoi graphviz dessine C à droite de B? Je veux que cela ressemble àPourquoi graphviz dessine C à droite de B?
A
B E
C
à la place.
digraph {
compound=true
subgraph cluster_1 { a -> b }
b -> c
{rank=same b -> e }
}
Pourquoi graphviz dessine C à droite de B? Je veux que cela ressemble àPourquoi graphviz dessine C à droite de B?
A
B E
C
à la place.
digraph {
compound=true
subgraph cluster_1 { a -> b }
b -> c
{rank=same b -> e }
}
Je ne suis pas sûr que vous pouvez faire ce que vous cherchez.
Lorsque le point représente le graphe donné, il considère cluster_1 comme une entité unique aux fins du classement. Donc, si vous le souhaitez, cluster_1 a le rang 0. Puis parce que vous dites {rank = same b, e}, e a aussi le rang 0. Quand dot tire c, c aura un rang plus élevé - rank 1 - donc il sera tiré ci-dessous e. Parce qu'il n'a pas besoin de s'inquiéter de l'espace dans l'axe des x à ce stade, il dessine c juste en dessous de e.
Si vous voulez noeud c définitivement être tiré en dessous de tout ce que vous pouvez ajouter
{ rank=sink c }
qui ... ne semble pas aussi grand que ce que vous visez à.
Parce qu'il augmenterait la superficie totale du graphique, qui est ce que graphviz tente de minimiser. Vous pouvez essayer d'utiliser différents utilitaires de mise en page dans les paquets tels que lefty ou neato pour voir si vous obtenez de meilleurs résultats.
On dirait que cela a quelque chose à voir avec le sous-graphe. Si vous avez juste "digraph {a -> b; b -> c; {rang = même b -> e}}" alors vous obtenez le classement que vous voulez ... sans le sous-graphe. –