2025-06-07

Pythonからgraphvizを使うには

graphvizというものがあります。ネットワーク構成を独自言語で記述した上でツールにかけると画像を生成してくれます。ネットワーク構成の画像を描くなら、GUIベースのお絵かきソフトを使えば、おそらく隅々まで自分好みの画像ができると思いますが、拘れば拘るほど、いくらでも時間が喰われていくことでしょう。それに対してgraphvizはネットワーク構成の論理的な構造を記述しておいて、画像を自動生成するので、気に入らない点も出てくるかもしれませんが、圧倒的に手間暇が削減できます。これはLaTeXの発想にも通じるところがあると思います。

 

graphvizを単独で使うのではなく、Pythonから利用しようとしたら、どうしたら良いのでしょうか。調べてみるとGraphvizPyGraphvizがあるようです。Pythonからgraphvizを利用する事例を検索すると、双方とも情報が見つかります。

 

それぞれを試しに使ってみましたが、各々特徴があって、どちらかが良いとか悪いとか判断するのは難しそうです。どうしたものかと思っていたら「Python から Graphviz を使う - networkx & PyGraphviz、pydot など」という記事を見つけました。そこには次のような記述がありました。

pyGraphviz というのもあるのを知る。ロスアラモス研究所 で開発されていて、グラフ操作のための networkx と、グラフ描画のための pyGraphviz という感じのようだ。 

 

PyGraphvizとロスアラモス研究所との関係は不明ですが、PyGraphvizのサイトには「PyGraphviz provides a similar programming interface to NetworkX (https://networkx.org).」と書かれていることは確かです。

 

そもそもPythonからgraphvizを利用したいと考えたのは、NetworkXを使用してグラフ構造を出力したからなのです。そうであれば、これはもうPyGraphvizを利用するしかないのではないかという気になってきました。 

0 件のコメント:

コメントを投稿