複雑ネットワークを解析するプログラムをPythonで書きたいと思っていて、Java言うyFilesのように、グラフとしてのネットワークの特性を扱うライブラリが無かったら、自分で書こうと思っていたけど、ものすごくいいのがありました。それが、networkXで、もしかしたらyFilesより高機能かも。しかも、フリー。yFilesはアカデミアでも20万くらいとるから、Pythonやっぱり万歳か?
利用環境はPython2.4.3で、Windowsのバイナリなら、installはいたって簡単。最新版である0.32を入れました。networkx-0.32.win32.exe これだけで、ネットワークを扱うプログラムはすぐに書けるようになりますが、描画できる方がいいかと思い、matplotlibも導入。matplotlib-0.87.6.win32-py2.4.exe >>> import pylab Traceback (most recent call last): File " File "C:\Python24\Lib\site-packages\pylab.py", line 1, in ? from matplotlib.pylab import * File "C:\Python24\Lib\site-packages\matplotlib\pylab.py", line 197, in ? import cm File "C:\Python24\Lib\site-packages\matplotlib\cm.py", line 5, in ? import colors File "C:\Python24\Lib\site-packages\matplotlib\colors.py", line 33, in ? from numerix import array, arange, take, put, Float, Int, where, \ File "C:\Python24\Lib\site-packages\matplotlib\numerix\__init__.py", line 73, in ? import numpy ImportError: No module named numpy 数学ライブラリがが必要なよう。matplotlibのサイトに、 For standard python installations, you will also need to install either Numeric or numarray in addition to the matplotlib installer. matplotlib provides installers for Numeric and numarray users. matplotlib has a numerix setting in the matplotlib rc file (which by default resides in c:\python23\share\matplotlitb\matplotlibrc) and you should make sure this setting corresponds to your preferred array package. と、書いてるので、先日Rとの連携で入れたNumericをそのまま使うことに。Python界の流れ的には、numarrayが主流になりつつあるようで、matplotlibのデフォルトもそれを使うようになっていますが、 C:\Python24\Lib\site-packages\matplotlib\mpl-data の、matplotlibrcを編集。 numerix : numpy # numpy, Numeric or numarray となっているところをコメントアウトし、 numerix : Numeric に変更することで、無事importできるようになります。 networkxのエライところの1つに、何でもnodeにできるところがあります。 たとえば、以下のようにtupleをnodeにできる。そのまま描画するとわかりやすくていいです。 >>> import networkx as nx >>> import pylab >>> g = nx.Graph() >>> g.add_edge( ('node1',3) , ('node2', 8)) >>> g.add_edge( ('node2',8) , ('node3', 9)) >>> g.add_edge( ('node2',8) , ('node4', 5)) >>> nx.draw( g ) >>> pylab.savefig('net.png') ![]() スポンサーサイト
|
|
| ホーム |
|