Graphvizを使用して単純な有限状態機械グラフを視覚化しようとしています。 Graphvizによって作成されたレイアウトは、私の好みに完全に一致しません。短いエッジでよりコンパクトな結果が期待されていました。グラフアイテムのレイアウトにどのように影響しますか?
これまでのところ、私はグループを使い、エッジの重みを変えようとしましたが、あまり運がありませんでした。なぜGraphvizがグラフを描くのか、アルゴリズムを自分の好みに合わせる方法は私には分かりません。それを達成するために設定できるパラメータはありますか?または、dot
以外のコマンドを使用する必要がありますか?私はneato
を試みたが、結果は完全に台無しにして、もう一度、私は本当に私がやっているのか理解していないに見えた...
これは、これまでの私の最高の結果である:
視覚化しようとすると私はグラフと彼のソースコードを作成するためにdot
を使用している:
1 digraph JobStateDiagram
2 {
3 rankdir=LR;
4 size="8,5";
5
6 node [style="rounded,filled,bold", shape=box, fixedsize=true, width=1.3, fontname="Arial"];
7 Created [fillcolor=black, shape=circle, label="", width=0.25];
8 Destroyed [fillcolor=black, shape=doublecircle, label="", width=0.3];
9 Empty [fillcolor="#a0ffa0"];
10 Announced [fillcolor="#a0ffa0"];
11 Assigned [fillcolor="#a0ffa0"];
12 Working [fillcolor="#a0ffa0"];
13 Ready [fillcolor="#a0ffa0"];
14 TimedOut [fillcolor="#ffa0a0"];
15 Failed [fillcolor="#ffa0a0"];
16
17 {
18 rank=source; Created Destroyed;
19 }
20
21 edge [style=bold, fontname="Arial" weight=2]
22 Empty -> Announced [ label="announce" ];
23 Announced -> Assigned [ label="assign" ];
24 Assigned -> Working [ label="start" ];
25 Working -> Ready [ label="finish" ];
26 Ready -> Empty [ label="revoke" ];
27
28 edge [fontname="Arial" color="#aaaaaa" weight=1]
29 Announced -> TimedOut [ label="timeout" ];
30 Assigned -> TimedOut [ label="timeout" ];
31 Working -> TimedOut [ label="timeout" ];
32 Working -> Failed [ label="error" ];
33 TimedOut -> Announced [ label="announce" ];
34 TimedOut -> Empty [ label="revoke" ];
35 Failed -> Announced [ label="announce" ];
36 Failed -> Empty [ label="revoke" ];
37
38 edge [style=bold, fontname="Arial" weight=1]
39 Created -> Empty [ label="initialize" ];
40 Empty -> Destroyed [ label="finalize" ];
41 Announced -> Empty [ label="revoke" ];
42 Assigned -> Empty [ label="revoke" ];
43 Working -> Empty [ label="revoke" ];
44 }
また、誰もが私は上記のGraphvizのファイル内の任意の奇妙なことをすれば私に知らせてください - 任意のフィードバックを歓迎です。
更新:もっと
は、ユーザーmarapetによって与えられたポート、のようないくつかの提案を実験と試みるが、なぜdot
は、これらの奇妙なを描くことを選択しない、下の画像に、例えば...私の混乱を増加していますより直線的ではなくWorking->Failed
とFailed->Announced
を迂回しますか?
有向グラフ(dot、twopi、circo、patchwork、osage)用のいくつかのグラフビズツールがあります。https://graphviz.gitlab.io/_pages/pdf/dot.1.pdfを参照してください。試してみる価値があります。 – qneill