2017-10-02 17 views
2

初回DOT/GraphVizユーザーはここにいます。私はそれがこのgraphvizでこのグラフを非周期的にするにはどうすればいいですか?

enter image description here

私はどのように表現するかのようにレンダリングされたいのですが、一方、この

enter image description here

のようにレンダリングされる次のグラフ

digraph G { 
    rankdir=LR; 
    "START" -> "A" -> "B" -> "A" -> "C" -> "A" -> "END" 
    "START" -> "A" -> "C" -> "A" -> "B" -> "A" -> "END" 
} 

を持っていますそれはDOTのですか?

答えて

1

Graphvizでは、同じIDを持つ複数の状態を持つことはできません。ただし、状態のIDは異なるがラベルは同じであるグラフを作成できます。

digraph G{ 
    START [label="START"]; 
    A1 [label="A"]; 
    A2 [label="A"]; 
    A3 [label="A"]; 
    B1 [label="B"]; 
    B2 [label="B"]; 
    C1 [label="C"]; 
    C2 [label="C"]; 
    END [label="END"] 
    START->A1 
    A1->B1 
    A1->C1 
    B1->A2 
    C1->A2 
    A2->B2 
    A2->C2 
    B2->A3 
    C2->A3 
    A3->END 
} 

同じ名前(ラベル)と表示された異なる状態を定義します:あなたは、私がこのような何かをしようとするグラフを構築するために

。ここでは、その結果を見ることができます: enter image description here

+0

おかげで、理にかなっている。しかし、コードを生成することは悪夢になるだろう。私が必要とするように動作するGraphvizの代替手段はありますか? – Morpheu5

+0

私は他の何かを使う必要は一度もありませんでした。私はGraphvizがグラフを印刷するためのかなりの標準だと思う。 – rakwaht

1

@rakwahtが提案し、あなたがより簡潔すでに、ちょうど書かを受け入れたように、これはまったく同じである - 私はこれは悪夢だとは思わない:

digraph G{ 
    START [label="START"]; 
    A1, A2, A3 [label="A"]; 
    B1, B2 [label="B"]; 
    C1, C2 [label="C"]; 
    END [label="END"]; 
    START-> A1 -> { B1 C1 } -> A2 -> { B2 C2 } -> A3 -> END 
} 
+0

悪夢の部分は私の起源のデータ構造からこのコードを生成していましたが、結局私は管理しました、そして、実際には悪夢のようなものでした。 – Morpheu5

関連する問題