私の娘たちは三目並べに似たゲームを作りました。もちろん、彼らと一緒にプレイしたとき、頭の中で強引に強要し始めました...
だから、昼食時にゲームを「解決」するための短いPythonスクリプトを作成しました。結果をグラフィカルに表示したかったので、すべての合法的な動きのドットファイルを生成しました。
dot
を使用してレンダリングしようとすると、時間がかかり、数時間後に中止します。
neato
またはsfdp
などを使用してレンダリングすると、数秒以下かかりますが、レイアウトを実際に読み取ることはできません。
sfdp -x -Tpng data.dot > data.png
neato -x -Tpng data.dot > data.png
結果の画像が数メガピクセルになるとうれしいです。
このような大きなグラフをレイアウトしてレンダリングするにはどうすればよいですか? Pythonレイアウトを実行できるライブラリもあります。
( やや関連するリンク )
追加: my Python script ゲームを解決してドットファイルを生成する
これを試して:
sfdp -x -Goverlap=scale -Tpng data.dot > data.png
-Goverlap
はレイアウトを保持しますが、ノードのオーバーラップがなくなるまで均一にスケールアップします。ズームアウトすると、このように見える〜77MBのPNGを取得できました。
あなたはまだネイトを使用することができますが、.dotファイルのパッティングを変更することができます:[splines = trueoverlap = false]
ファイルは次のようになります。
digraph luffarschack {
graph [splines=true overlap=false];
node [shape=none];
...here your nodes;
...here your edges;
}
2行目「グラフ[splines = trueオーバーラップ= false]」を入力するだけで、他のすべてが同じ場合は機能するはずです。
大きなグラフでデフォルトの-Kneato
のドットが遅すぎる( svg )。使用してしまいました
dot -Ksfdp -ooutput.svg -Tsvg input.dot
ここで、input.dot
は
digraph {
graph [overlap=false];
a -> {b c d e f g}
b -> {c e g x f}
...
}
他の答えに加えて、 Gephi のような他のツールを使用できます。
Gephiは、あらゆる種類のグラフおよびネットワーク向けの主要な視覚化および探索ソフトウェアです。 Gephiはオープンソースで無料です。
Windows、Mac OS X、Linuxで実行されます。