【Pythonでネットワーク可視化】graph-toolのインストール
graph-tool
前回NetworkXを使ってグラフを描画したが、主に使用目的がpythonでのデータの可視化であったので、それに特化したライブラリを探していた。
そこで見つけたのがgraph-tool。graph-toolはデータビジュアライゼーションに特化したライブラリとのことで、早速使ってみる。 今回はインストールと簡単なグラフ描画まで。
インストール for Ubuntu(14.04)
/etc/apt/sources.listに以下の文を追加
deb http://downloads.skewed.de/apt/trusty trusty universe deb-src http://downloads.skewed.de/apt/trusty trusty universe
他のversionのubuntuを使用している場合はtrustyの部分を変える必要が有ることに注意。今回は(14.04, trusty)なのでtrustyと書き換える。
ところがapt-get updateした段階でpublic keyのエラーがでてしまった。 どうやらpublic keyを登録しないといけないらしい。 公式サイト からpublic keyをダウンロードし登録して解決。
apt-key add [downloadしたpublic keyのパス] apt-key list # 確認 apt-get update # OK!
keyの登録ができれば、あとは下記コマンドでインストールできるはず。
apt-get install python-graph-tool
インストール for Mac
以前はいろいろ大変だったらしいが、今ではパッケージマネージャ経由でインストールできる。 Macportsだと簡単で
port install py-graph-tool
だけでインストール可能とのこと。
手元の環境ではHomebrewを使っているので、今回はbrewで試してみる。 かなり長いインストール手順が書いてあったが、幸いbrewのフォーミュラがあったのでそれを実行。
$ brew install homebrew/science/graph-tool
インストールはかなり時間がかかるので注意。 コマンドを実行してしばらく放置する。
必要なpythonライブラリのインストール
上記手順でnumpy, matplotlib, scipyを手動でインストールしろ、というメッセージが出たので、pipでインストール
$ pip install numpy scipy matplotlib
そして再度brewコマンドを実行。手元のMacBookPro(2014 2.4GHz)で30分ほどかかった。
>>> import graph_tool
Fatal Python error: PyThreadState_Get: no current thread
失敗orz... 調べたところどうやらbrew でboostが複数バージョンインストールされていることが原因らしいので、boostを再インストール
brew uninstall --force boost brew install boost
再度graph_toolのインスト-ルを行ったところ、無事終了。
>>> import graph_tool
>>>
インストールが完了した。
簡単なグラフ描画
2ノードの簡単なグラフを作成してみる
import graph_tool as gt import graph_tool.draw as gtd g = gt.Graph() # Add node v1 = g.add_vertex() v2 = g.add_vertex() # Add edge e = g.add_edge(v1,v2) # Draw graph gtd.graph_draw(g, vertex_text = g.vertex_index, vertex_font_size=18, output_size=(200, 200), output="two-nodes.png" )
以下のようなグラフが出力されればOK!