関連する質問は次のとおりです。
次のドットファイルを検討してください。
digraph {
0 -> 1 [ len=2, label="(1, 0)"];
0 -> 1 [ len=0.5, dir=none, weight=10];
1 -> 0 [ len=2, label="(0, -1)"];
}
次の結果が得られます。
どうすれば対称バージョンを取得できますか? (0,-1)
は右のegdeの左側にある必要があります。
ご存知のように、graphvizでは水平方向のラベル配置を選択できないため、すべてのソリューションは少しハックです。
試み#1:marapetによって投稿された2つの解決策( ここ )
Labelangleとlabeldistanceのトリックは、さまざまな長さのラベルテキストにうまく適応しません(新しい距離/角度の数値を再計算する必要があります)。
Splines = falseトリックは、ノード間のエッジの数>ノードの数の場合はうまく機能しません(エッジが重なることになります)。
試行#2:曲線エッジを作成するためのxlabelsとアンカー
これは、graphvizの比較的新しい機能 xlabel を使用します(ノード/エッジの座標が決定された後にラベルを配置します)。 ports 機能は、カーブしたエッジを作成するために使用されます。ラベルのパディングはスペース文字で実現されます。
digraph {
forcelabels=true;
0:sw -> 1:nw [ dir=forward, xlabel=" (1, 0) "];
0 -> 1 [dir=none];
1:ne -> 0:se [ dir=backward, xlabel= " (0, -1) "];
}
Xlabelを使用するには、graphvizバージョン> 2.29が必要だと思います。