2016-11-12 9 views
1

graphvizのノードの順序を制御するためにランク= sameを使用しようとしています。 e.g.私はこの異常な行動を見つけました。私が欲しいのは、予想されるためには、ノードa、b、cを取得すること、すなわち、その後、その後、C B:私はgraphvizのは、その道の外に行くだろうない理由を見ないgraphviz newrank = true、予期しない注文

digraph foo{ 
newrank=true 
"o4"->"x3" 
"o4"->"x4" 
"o5"->"x3" 
"o5"->"x4" 

subgraph cluster_7 { 

"a"->"i" 
"b"->"i" 
"c"->"i" 

} 
{rank="same";"a"->"b";"b"->"c"} 

} 

unexpected behaviour

a、b、cの順番を混乱させる。コードのあらゆる部分を変更した場合、たとえばoノードとxノードの間のエッジの1つを削除すると、問題は消えます。 newrank=trueを削除すると消えますが、それ以外の場合はrank=same仕様によってサブグラフからノードがシフトされます。サブグラフを通常のクラスタにすると消えます。つまり、cluster_で名前を開始しませんが、これも必要です。 rank=same行を削除すると消えますが、これも必要です。何か案は?

答えて

1

私は、エッジのカップルに制約をオフにすることによって、より良い結果を得ることができました:

digraph foo{ 
newrank=true 
"o4"->"x3" 
"o4"->"x4" 
"o5"->"x3" 
"o5"->"x4" 

subgraph cluster_7 { 

"a"->"i" [constraint=false] 
"b"->"i" 
"c"->"i" [constraint=false] 

} 
{rank="same";"a"->"b";"b"->"c"} 

} 

enter image description here

これはしかし、助けなぜ私が説明することはできません。

関連する問題