2009-09-25 10 views
19

私はGraphvizを使っていくつかのグラフを描いています。私はノード上にラベルを使用しています。"\n"に2行にまたがるラベルを分割することができます。 Graphviz(または私が使用しているdot)を取得する方法はありますか?自動的にそれはいくつかのノードのラベルを分割する必要があり、それ自体が最良の選択を自動的に行うべきかどうかを確認しますか?Graphvizの自動マルチラインラベル?

答えて

10

これも検索しましたが、現在のバージョンでは可能ではないと思います。現在の "解決策"は、ノード間の最小距離に基づいて数文字ごとに自動的に "\ n"を追加するコードを書くことです(私が間違っていない場合はnodesep属性)。

+3

ます。また、HTMLのようなラベルを使用することができますが、自動的に折り返されませんこれは( 'ではなく'「...」 ''の<...>で引用された)が、\ nをよりレイアウトをより細かく制御することができます。システムのグラフィックスライブラリでレンダリングされるレンダリングされた文字列の長さの見積もりと併せて、どこに区切りを入れるべきかを推測することができますか? –

7

はい、HTML形式のラベル(< ...)は、
タグをサポートしています。このタグを使用すると、改行することができます。例えば。

"A" -> "B" 
[label = <1. <br/> 
2. <br/> 
3. <br/> 
4. <br/> 
.... <br/> 
> color="blue" style="dashed"]; 
+3

-1これは質問に答えません。また、使用されている現在の方法よりも悪い(2文字は5より良い)。 –

+4

それは質問に答えることはできませんが、優れた回避策を提供するので、私は+1します – Pascal