次のような単純な線形配置を生成したい:
私はこの方法を難しくしすぎていると思います。位置をハード コーディングしてみましたが、スプライン エッジが必要なため、もう少し複雑です。
エッジが上か下かは特に気にしませんが、それを指定すると便利です。
これは、graphviz を使えば簡単にできるはずだと思われるものの 1 つですが、実際にはそうではありません。
Graphviz はエッジの交差を最小限に抑えるように作られているため、これらの写真のようにエッジを配置することはありません。これは、graphviz が作成された目的ではありません。
しかし、エッジの最適化をオフにするオプションがあればいいと思います。
次のようなものを作成できます。
rankdir=LR;
ranksep=0;
edge[style=invis];
node[shape=none, width=0.3, height=0, margin=0.02];
4->7->5->1->8->3->6->2;
edge[style=solid, constraint=false];
1:s->2:s->3:s->4:s->5:s->6:s->7:s->8:s
その結果
ノース ポートとサウス ポートの使用を開始するとすぐに、graphviz はエッジの交差を最小限に抑え、ノード間のエッジの一部をリードしようとします。
rankdir=LR;
ranksep=0.05;
edge[style=invis];
node[shape=none, width=0.3, height=0, fontsize=12, margin=0.02];
4->7->5->1->8->3->6->2;
edge[style=solid, weight=0];
1:n->2:n;
2:s->3:s->4:s;
4:n->5:n->6:n;
6:s->7:s;
7:n->8:n;
誰かがより良い近似を持っている場合は、投稿してください。興味があります。