私は DOT 言語を学ぶことにしました。これは素晴らしいと思います。RPM 構築用のグラフを作成するためのプロジェクトを作成することにしました。すべてのレシピをスキャンして RPM パッケージをビルドし、必要なパッチとインポートに関する情報も追加します。現在、私のグラフには 500 未満のノードと 1600 を超えるエッジがあり、サイズは時々安定している +/- 50-100 ノード/エッジである必要があります。
これが私が今持っているものです:
- (sfdp) http://imageshack.us/photo/my-images/638/deptree1.jpg/
- (ドット) [フラグメント] http://imageshack.us/photo/my-images/52/deptree2.jpg/
- (twopi) http://imageshack.us/photo/my-images/28/deptree3.jpg/
最初の 2 つは、最後の 1 つよりも少し読みやすくなっています。
詳細:
- パッケージは黒枠の箱に入っています。
- パッチは、オレンジ色の縁取りのボックス + オレンジ色の縁にあります。
- インポートは、赤い縁取りのボックスと赤い縁で示されます。
- 単一のルート パッケージ ノードはありません。ほとんどのパッケージをインポートする、いくつかの最上位 (ルート) パッケージ ノード、4 ~ 10 ノードのパッケージ (ノード) があると言えます。
- 依存関係ではなく、スタンドアロン パッケージ (ノード) があり、依存関係はありません。
- パッチは、(ほとんど) 単一のパッケージ ノードでのみ使用できます。
- すべてのパッケージ ノードにパッチがあるわけではありません。パッケージノードのごく一部にそれらがあると思います。
- インポート ファイルは、パッケージ ノードの大部分 (たとえば、すべてのパッケージ ノードの 1/3) に含めることができます。
- 私は rankdir="TB" を持っています (上-下)
- エッジの重みを増やしました (パッケージ -> パッチ)。これは、パッチ ノードがパッケージ ノードに近いことを意味します。
- ノードに重なるエッジの数を最小限に抑えるとよいでしょう。これにより、グラフが非常に読みにくくなります。
この場合、グラフ レイアウトの構成とアルゴリズムの使用に関する提案はありますか?