2011-04-05 11 views
8

私はgraphvizで図を生成しています。非常に大きいノードがいくつかあり、小さなノードが多数あります。私はneatofdpでpngを生成しようとしましたが、どちらも非常に大きなグラフィックスを生成します。ほとんどの場合、空白です(ノードは非常に離れています)。これらのツールがノードをより緊密に接近させるために大きなばね力を設定する方法はありますか?コンパクトなグラフレイアウトのためにgraphvizで 'spring' forceを設定する方法

+1

は非常に古いです:sfdp/FDPを使用する場合は、[K]と呼ばれる属性があります( http://www.graphviz.org/doc/info/attrs.html#d:K)、この目的のために役立ちます。 – Yosh

答えて

11

neatoを使用している場合は、overlapsep属性を使用することができます。

overlapfalsecompressscalexy、及びmoreに設定することができます。

sepは、先行するプラス記号と一緒に使用する場合は加算マージンを指定します。そうでない場合は、ノードのサイズを1 + sepの値にスケーリングすることでマージンを定義します。デフォルトであるようです

サンプルグラフを投稿するのをためらってください。あなたの特定のグラフを知らない、私はいくつかの大きなおよびいくつかの小さなノードを含む例を作った:この記事を知る

layout=neato; 
overlap=scalexy; //false, compress, ... 
sep="+1"; // 0.1, +1 

node[label="Large node", width=2, height=2]; 
l1; l2; l3; 
node[label="\N", width=0.5, height=0.3]; 
1 -> l1; 
2 -> l1; 
3 -> l1; 
4 -> l1; 
5 -> l1; 
5 -> l2; 
6 -> l2; 
7 -> l2; 
8 -> l2; 
8 -> l3; 
9 -> l3; 
10 -> l3; 

enter image description here

+0

sep = "+ 1"は "予期しない文字 '+'が見つかりました – qxo

+0

@qxoは今のように' sep = "+ 1"; ' – marapet

関連する問題