次のコードを使用して、ラベルなしで見栄えがよく対称的に見える単純な垂直グラフがあります。
digraph test_alignment
{
{rank=same; a -> b;}
a -> c;
b -> c;
c -> d;
d -> e;
d -> f;
{rank=same; e -> f;}
}
各ラベルに同じ文字列を使用して、A と B の間のエッジと E と F の間のエッジにラベルを付けたいと思います。同じラベルが付いた長い A->B および E->F エッジを除いて、同じ出力を期待しています。
残念ながら、これらのエッジの 1 つにラベルを追加するとすぐに、全体的なレイアウトがわずかに斜めに見えます (E->F エッジにラベルを追加すると、結果は同様になります)。
digraph test_alignment
{
{rank=same; a -> b [label="Label"];}
a -> c;
b -> c;
c -> d;
d -> e;
d -> f;
{rank=same; e -> f;}
}
私はgraphvizを初めて使用し、スタックオーバーフローに関する多くの質問に従って、ランクと制約のさまざまな組み合わせを試してきました。クラスターを使用して、上部と下部を個別に適切に整列させるかどうかを確認し、使用してみましたdot、ccomp、gvpack、neato の組み合わせでも同様の結果が得られました。
同じランクのノード間のエッジにラベルを追加すると、これらのノードがどのように配置されるかに影響を与えるという事実に要約されるようです。
些細なことを見逃していますか、それともドットに任せるのではなく、すべきではないことを試みていますか?
私は dot - graphviz バージョン 2.36.0 (20140111.2315) を使用しており、リンクされた画像はドットのみで作成されました (ただし、次を使用すると同様の結果が得られました:
dot test_alignment.dot -Tpng -O