1

私はgraphvizで仕事をしなければなりません。いくつかの木のグラフィック表現を視覚化する必要がありますが、いずれにせよ、2 つの木を比較して違いを確認する必要があります。このように、木 A と木 B があります。それらの表現を作成して比較した後、表示する必要があるのは共通点のないノード。誰かが私に EMF Compare を使うように言ったのですが、残念ながら私はこのプラグインが graphviz の拡張機能を受け入れるようにする方法を知りません。

この仕事に直面するためのアドバイスやその他の可能な解決策はありますか?

よろしく。

4

1 に答える 1

3

2 つの.dotファイルを指定すると、a1.dot次のようになります。

digraph g1 {
    A -> B -> D -> E
    A -> C -> E
    }

...そしてa2.dot

digraph g2 {
    A -> B -> F -> E
    A -> C -> F
    }

...次のように、それらの間で異なるノードを見つけることができます。

$ dot -Tplain a1.dot | sed -ne 's/^node \([^ ]\+\).*$/\1/p' | sort >a1.nodes
$ dot -Tplain a2.dot | sed -ne 's/^node \([^ ]\+\).*$/\1/p' | sort >a2.nodes
$ diff a1.nodes a2.nodes
4d3
< D
5a5
> F

からの出力から各ファイルsedのノード名のリストを取り除き、ノードを順番に並べ替えてから、違いを見つけるために使用しています。このアプローチでは違いがグラフィカルに表示されませんが、最適な場合でもこれを行うのは難しいことです。.dotplaindotdiff

于 2013-05-27T22:38:03.117 に答える