3

Graphviz(neatoでコンパイル)を使用してグラフを作成しています。このグラフには、完全に良好な重複ノードが多数含まれています。ただし、大きなノードのグループがあり、常に他の小さなノードの上に配置することを好みます。ただし、グラフの最初に大きなノードを定義することを好みます(これにより、ノードは一番下に描画されます)。

これを強制できる方法はありますか?

編集:
これは私が何を意味するのかを明確にするための小さな例です:

graph G {
    node [style=filled,fillcolor=black];
    BigNode [fillcolor=skyblue,shape=Msquare];

    node [style=filled,fillcolor=red,shape=circle];
    edge [style=invis]
    1 -- BigNode[len=0.5];
    2 -- BigNode[len=1];
}

BigNodeノードの上にペイントしたいのですが1

4

2 に答える 2

3

私は1つの(一種の)解決策
を見つけました...ノード定義のみを最後まで延期すると、このノードのエッジを以前に定義した場合でも、それが一番上にペイントされることがわかりました。
これは私が以前に定義したものと矛盾していることに気づきましたが、これがこの場合の唯一の可能な解決策であり、最終的に使用しなければならなかったものでした。

私の短い例では、これを行います:

graph G {
    node[style=filled,fillcolor=black];
    // Definition of BigNode moved to the end of the file
    /*BigNode [fillcolor=skyblue,shape=Msquare];*/ 

    node[style=filled,fillcolor=red,shape=circle];
    edge[style=invis]
    1 -- BigNode[len=0.5];
    2 -- BigNode[len=1];

    // Defined after already defining edges for BigNode
    BigNode [fillcolor=skyblue,shape=Msquare];
}

結果のグラフでBigNodeは、ノード上にペイントされています1

于 2009-11-25T07:40:00.747 に答える
2

それは不可能だと思います。公式のネイトガイドでは、6〜9ページでノードの階層化について説明しています。できることのほとんどは、エッジの長さを調整してノードをピン留めすることです。ノードが相互に階層化する方法を実際に制御することはできません。

于 2009-11-25T04:09:14.383 に答える