graphvizというものがあります。ネットワーク構成を独自言語で記述した上でツールにかけると画像を生成してくれます。ネットワーク構成の画像を描くなら、GUIベースのお絵かきソフトを使えば、おそらく隅々まで自分好みの画像ができると思いますが、拘れば拘るほど、いくらでも時間が喰われていくことでしょう。それに対してgraphvizはネットワーク構成の論理的な構造を記述しておいて、画像を自動生成するので、気に入らない点も出てくるかもしれませんが、圧倒的に手間暇が削減できます。これはLaTeXの発想にも通じるところがあると思います。
graphvizを単独で使うのではなく、Pythonから利用しようとしたら、どうしたら良いのでしょうか。調べてみるとGraphvizとPyGraphvizがあるようです。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 件のコメント:
コメントを投稿