Graphviz、バージョンアップで挙動が変わった?
Graphvizをバージョンアップしたら、出力したグラフのノード配置が変わってしまった!!
1.環境
OS : Windows7 Home Premium Ruby : ruby 1.9.3p392 (2013-02-22) [i386-mingw32] gem : ruby-graphviz(1.0.9)
今回、graphviz本体だけを最新バージョン 2.34 zip版にあげて(http://www.graphviz.org/Download_windows.php)、同じ処理して発覚した。
このとき、graphviz本体以外は変更していない。
※graphviz2.30.1を数ヶ月使っていたが、この期間にはubuntuでも何度も同じことをやっていて、 ほぼ同じ挙動だったので、今までは気にならなかった。 (正確に言うと、winとubuntuでエッジの描画が少し違ったけど、それでも許せる程度の違いだった)
というわけで、直近のバージョンをいくらか調べてみた。
ダウンロード元はここ(http://www.graphviz.org/pub/graphviz/stable/windows/)
2.検証で使ったスクリプト
require 'graphviz' g = GraphViz::new( "title name",:type => "graph",:splines => "ortho",:layout=>"dot") elements=Hash.new g.subgraph{ |c| c[:rank=>'source'] elements['ff']=c.add_node('ff',:shape=>"box",:label=>"A",:fontname=>"MS UI Gothic") elements['fm']=c.add_node('fm',:shape=>"box",:label=>"B",:fontname=>"MS UI Gothic") elements['ff_fm']=c.add_node('ff_fm',:shape=>"point") c.add_edge(elements['ff'],elements['ff_fm'],:arrowhead=>"none") c.add_edge(elements['fm'],elements['ff_fm'],:arrowhead=>"none") } g.output(:png=>"image.png")
3.上記スクリプトを各バージョンで出力した結果
http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.30.1.msi
②graphviz本体バージョン 2.30.1(zip版)
http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.30.1.zip
エラー!!
※msi版とzip版のフォルダをdiffを取ったら、差異がゴロゴロでてきた。
③graphviz本体バージョン 2.32(zip版)
http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.32.zip
④graphviz本体バージョン 2.34(zip版)
http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.34.zip
http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.34.msi
4.考察
というわけで、msi版とzip版が異なることが分かったものの、それが理由ではなかった。ver.2.30.1からver.2.32に更新されるときに、何か変更があったのだろう。でも、バージョンアップ時の変更箇所の説明が見つからない。どこかにあるはずなんだけど・・・
ノードの配置がこれだけ変わってしまうと困ります。
ver.2.30.1(zip版)がエラーになってしまうのはもっと困ります。何なんだろう。
5.結論
しばらくver.2.30.1msi版を使い続けることにする。なんかスッキリしないけど。