2016-10-26 9 views
6

にランク部分グラフを作成しようと、私はGraphvizのを使用して、このようなものを作るしようとしました:私は期待どおりgraphvizの

x y z 
    | | | 
    # | | 
    a#__\| | 
    # /#b | 
    # #__\| 
    # # /#c 
    # d#/__# 
    # #\ x 
    # # | 
    e#/__# | 
    #\ # | 

しかしランク付けして動作していないようです。私はeを他のノードよりも下にしたい。

digraph x 
{ 
    rankdir = tb; 
    size = "7.5, 7.5"; 
    rank = source; 
    a -> b -> c -> d -> e; 
    subgraph "cluster x" 
    { 
    style=filled; 
    color=lightgrey; 
    label="x"; 
    a -> e [style=invis]; 
    } 
    subgraph "cluster y" 
    { 
    label="y"; 
    b -> d [style=invis]; 
    } 
    subgraph "cluster z" 
    { 
    label="z"; 
    c; 
    } 
} 

First attempt

私は作品のclusterrank = globalどの並べ替えを使用しようとしたが、その後の部分グラフは、より明白列に分離して、列の上に重複がありますされていません。私が望むように、それはまた右に行かない。以下の画像は赤で重複のいずれかを浮き彫りにしていますが、4

2nd attempt

digraph x 
{ 
    rankdir = tb; 
    rankstep=equally; 
    clusterrank = global; 
    size = "7.5, 7.5"; 
    a -> b -> c -> d -> e; 
    subgraph "cluster x" 
    { 
    style=filled; 
    color=lightgrey; 
    label="x"; 
    a -> e [style=invis]; 
    } 
    subgraph "cluster y" 
    { 
    label="y"; 
    b -> d [style=invis]; 
    } 
    subgraph "cluster z" 
    { 
    label="z"; 
    c; 
    } 
} 

がある見ることができるように私は保証トップにを持っているとしている別のクラスタを作成しようとしました適切なクラスターをランク付けしますが、前の試みと同じことを行い、最初の試行で見られたボックスを削除し、重複を招くことがあります。試してみて、私が欲しいのレイアウトを取得するよう

digraph x 
{ 
    rankdir = tb; 
    1 -> 2 -> 3 -> 4 -> 5; 
    a -> b -> c -> d -> e; 
    { rank=same; 1; a; } 
    { rank=same; 2; b; } 
    { rank=same; 3; c; } 
    { rank=same; 4; d; } 
    { rank=same; 5; e; } 

    subgraph "cluster x" 
    { 
    style=filled; 
    color=lightgrey; 
    label="x"; 
    a -> e [style=invis]; 
    } 
    subgraph "cluster y" 
    { 
    label="y"; 
    b -> d [style=invis]; 
    } 
    subgraph "cluster z" 
    { 
    label="z"; 
    c; 
    } 
} 

3rd attempt

誰もが任意のアイデアがありますか?

この問題に関してGraphvizフォーラムにログインしようとしましたが、this pageからのログインが機能していないようです。私は長いタイムアウト問題を続けています。私は私の電子メールアカウントをチェックし、何もそこにありません。同じメールで新しいアカウントを作成しようとしていますが、アカウントはすでに使用中であると表示されます。私はそれらを試してパスワードをリセットするようにし、別のタイムアウトの問題が発生します。

ログインの問題を解決するために私が連絡できる相手が誰か分かりますか?既にログインしている人が私のために投稿することができますか?

答えて

0

ドットを-Gnewrankで実行します。それはあなたのスケッチに基づいてあなたが望むものを得るでしょう。さらに調整が必要な場合は、後で何をするかを明記してください。

0

あなたの最後の解決策は、別々のノードとしてラベルを定義する矢印

を調整するsplines=...で「ボックス化解除」のクラスタの

プレイを避けるために、できるだけ早くあなたがマイナーチューニング

使用newrank=trueがそうであるように動作します。

digraph x 
{ 
    rankdir = tb; 
    newrank=true; 
    splines=ortho; 

    0 -> 1 -> 2 -> 3 -> 4 -> 5; 
    X; Y; Z; 
    a -> b -> c -> d -> e; 
    { rank=same; 0 X Y Z} 
    { rank=same; 1; a; } 
    { rank=same; 2; b; } 
    { rank=same; 3; c; } 
    { rank=same; 4; d; } 
    { rank=same; 5; e; } 

    subgraph "cluster x" 
    { 
    style=filled; 
    color=lightgrey; 
    a -> e [style=invis]; 
    } 
    subgraph "cluster y" 
    { 
    b -> d [style=invis]; 
    } 
    subgraph "cluster z" 
    { 
    c; 
    } 
} 

enter image description here