6

これは、生成されたグラフが現在表示されているもの です。これのコードは次のとおりです。

  digraph {
  rankdir=TB;
  subgraph cluster01 {
    label="1.fázis"

    aSTART;
    node [shape = doublecircle]; a001; 
    node [shape = ellipse];

    aSTART -> a0 [ penwidth = 3 label = "0" ];
    a0 -> a00 [ penwidth = 3 label = "0" ];  
    a00 -> a001 [ penwidth = 3 label = "1" ];


    a0 -> aSTART [ label = "1" ];  
    a00 -> a00 [ label = "0" ];  
    a001 -> a0 [ label = "0"];
    a001 -> aSTART [ label = "1"];
    aSTART -> aSTART [ label = "1"];  
  }
  subgraph cluster02
  {
  label="2.fázis"
  bSTART; b1; b11;
  node [shape = doublecircle]; b111;
  node [shape = ellipse];

  bSTART -> b1 [ penwidth = 3 label = "1" ];
  b1 -> b11 [ penwidth = 3 label = "1" ];  
  b11 -> b111 [ penwidth = 3 label = "1" ];

  b1 -> bSTART [ label = "0" ];  
  b11 -> bSTART [ label = "0" ];  
  b111 -> bSTART [ label = "0"];
  bSTART -> bSTART [ label = "0"];

  b111 -> b111 [label = "1"];
  }

  subgraph cluster03
  {
  label="3.fázis";  

    cSTART; c0; c1; c01; c10;
    node [shape = doublecircle]; c010; c100;
    node [shape = ellipse];

    cSTART -> c0 [ penwidth = 3 label = "0" ];
    c0 -> c01 [ label = "1" ];  
    c01 -> c010 [ penwidth = 3 label = "0" ];

    cSTART -> c1 [ label = "1" ];  
    c1 -> c10 [ penwidth = 3 label = "0" ];    
    c10 -> c100 [ label = "0" ];    

    c0 -> c1 [ penwidth = 3 label = "1" ];
    c01 -> c1 [ label = "1" ];
    c1 -> c1 [label = "1"];

    c10 -> c01 [ penwidth = 3 label = "1"];

    c010 -> c100 [penwidth = 3 label = "0"];
    c010 -> c01 [label = "1"];

    c100 -> c01 [label = "1"];
    c100 -> c0 [label = "0"];

  }

  a001 -> b1 [color = "red" style = "dashed"];
  b111 -> c1 [color = "red" style = "dashed"];
}

2本の赤い線を削除すると、希望どおりに整列します。

どうすればこのように並べて、2本の赤い線を同時に持つことができますか?

4

2 に答える 2

4

あなたは付け加えられます

{
   rank=same;
   aSTART;
   bSTART
   cSTART;
}

サブグラフcluster03の後。ドットはあなたに警告を出しますが、あなたが望む方法を描きます:

D:\Code\funfunfun>dot -Tpng -oso1.png -Gcharset=latin1 so1.dot
Warning: aSTART was already in a rankset, ignored in cluster _anonymous_0
Warning: bSTART was already in a rankset, ignored in cluster _anonymous_0
Warning: cSTART was already in a rankset, ignored in cluster _anonymous_0

パッチを当てたグラフはこちらから入手できます

于 2011-04-27T06:20:49.500 に答える
3

constraint=false2つの赤いエッジで属性を使用する必要があります。

falseの場合、エッジはノードのランク付けに使用されません。

于 2011-04-27T06:58:12.497 に答える