グラフ描画用のツール

グラフを描画するためのツールをまとめておきます.他に知っている方は教えてくださると喜びます.

1. Graphviz

DOT言語でグラフを記述してGraphvizSVGやPDFなどに変換します.様々な描画アルゴリズムが実装されていて,プログラミング言語 Rubyなどからも使用することができます.ただし,インタラクティブにグラフの描画を変更することはできません.ギャラリーを見ると描画後の雰囲気がつかめると思います.Rubyで使用するときに分かりやすいサイトにhp12cさんのサイトがあります.

2. Gephi

グラフの描画をインタラクティブに操作できます.グラフの平均次数や密度などのメトリクスを求めることができ高機能です.

3. NetworkX : Matplotlib

NetworkXはプログラミング言語Pythonのグラフに関するライブラリです.NetworkX自身はグラフ描画のためのライブラリではありませんが,Matplotlibを用いてグラフ描画を行うことができます.描画方法や機能などはGraphvizに似ています.

4. graph-tool

NetworkXのようにPythonのグラフに関するライブラリです.NetworkXはPythonで実装しており,graph-toolはC++で実装しているために高速のようです.使用したことが無いので詳しいことは言えないのですが良さそうな感じがします.

5. CS academy : Graph Editor

Web上でグラフの描画をインタラクティブに操作できます.CS academyは競技プログラミングのサイトなのですが,よく競技プログラミングで使用されるグラフの入力形式を得ることができます.大規模なグラフを扱うことは難しいのですが,小規模な例を生成したい時に役に立ちます.

6. GRAPH x GRAPH

@monkukui2 さんが作成した Web 上でグラフを描画するサイトです.競技プログラミングに特化した作りになっています.

その他