web-dev-qa-db-ja.com

graphvizによって生成されたグラフのサイズを(面積のように)縮小する

Graphvizによって生成されるグラフのサイズ(ファイルサイズではなく、エリア内のサイズ)を小さくするための一般的なヒントはありますか?.

かなり大きなグラフ(700ノード)があります。各ノードのフォントサイズを小さく設定しましたが、実際のノードサイズではなくフォントサイズのみを縮小するようです。グラフの全体的な空白スペースを減らすための属性はありますか?ありがとう!

59
garsh0p

Graphvizを使用してそのサイズ(〜700ノード)のグラフをレンダリングし、3つすべてのオブジェクト(グラフ、ノード、およびエッジ)あなたが望むことをする必要があります:

ノード間の最小間隔を減らす、「nodesep」を使用して;例:nodes [nodesep = 0.75];これにより、グラフが「コンパクトになりすぎます」。 (nodesepおよびranksepは、おそらくドットがどのようにグラフを描画するかに影響しますその他の調整可能なパラメーター)

異なるランクのノード間の最小距離を減らす、例えば、nodes [ranksep = 0.75]; 'ranksep'は、異なるランクのノード間の最小距離を設定します。これは、グラフが多くのランクで構成されている場合、グラフのレイアウトに大きな影響を与えます

エッジの重みを増やす、たとえば、Edge [weight = 1.2];これにより、エッジが短くなり、グラフ全体がよりコンパクトになります

ノードの境界線とノードの塗りつぶしを削除、たとえば、nodes [color = none; shape = plaintext]、特に楕円形のノードの場合、ノード領域全体のかなりの部分が「未使用」です(つまり、ノードラベルの表示には使用されません)。各ノードのフットプリントは、そのテキストだけに削減されました

ノードのフォントサイズを明示的に設定(ノードテキストを囲むようにノードの境界線が拡大されます。つまり、特定のノードのフォントサイズとテキストの量がそのサイズに大きな影響を与えます。 ); [fontsize = 11]は読みやすい大きさである必要がありますが、「乱雑な」外観を減らす必要があります(デフォルトのサイズは14です)

ノードとエッジに異なる色を使用-これにより、グラフが読みやすくなります。たとえば、ノードの「テキスト」フォントカラーを青に、エッジフォントカラーを「グレー」に設定して、目がグラフ構造の2つのセットを区別できるようにします。これは、あなたが考えているよりも大きな違いをもたらすでしょう。

グラフの合計サイズを明示的に設定、例えば、graph [size = "7.75,10.25"](グラフが適合することを保証する8.5 x 11ページで、スペース全体を占めること)

93
doug