13

私はpydot経由でPythonでGraphvizを使用しています。私が作成している図には、有向グラフのクラスターが多数あります。pydot はそれらを水平に並べて配置しているため、非常に広い画像になります。代わりに垂直にスクロールできるように、最大​​幅の画像を出力するように指示するにはどうすればよいですか?

4

3 に答える 3

12

できることはいくつかあります。

  1. 'size' を使用して、グラフの最大サイズを設定できます (例: size = "4, 8" (インチ))。これにより、最終的なレイアウトのサイズが修正されます。ドット言語の他のほとんどのノード、エッジ、およびグラフ パラメーターとは異なり、'size' には既定値がありません。また、デフォルトの向きは「縦」です。これは、(より高いグラフとより広いグラフの場合) 必要なものだと思いますが、以前に「横」に設定されていた場合に備えて、このパラメーターを明示的に設定することをお勧めします。

  2. 'Size' を ' ratio ' パラメーター (レイアウトの縦横比) と共に使用して、構成を操作できます。'Ratio' は float (例: ratio = "2.0") または 'auto' または 'fill' を取ります。(後者は、「サイズ」で割り当てられたグラフ領域全体を使用して塗りつぶすようにgraphvizに指示します。

  3. グラフの構成に最も大きな影響を与えるパラメーターは、「nodesep」と「ranksep」です。これらは、「ランク」が等しい隣接ノード間の最小水平距離と、ノードの隣接ランク間の最小垂直距離です。デフォルト値は、それぞれ 0.25 インチと 0.75 インチです。必要な構成を取得するには、同時に nodeep を増やし、ranksep を減らします。段階的な反復により、必要な構成を提供するこれら 2 つのパラメーターの一連の値にすばやく収束できるはずです。

于 2010-02-07T03:59:37.240 に答える
12

次のようにグラフを初期化します。

graph = pydot.Dot(graph_type='digraph', rankdir='LR')

これにより、グラフの方向が左から右に設定されます。一般に、graphviz のドキュメントを使用して、目的を達成するための適切な属性を見つけてください。

于 2013-05-01T03:26:41.183 に答える