Jungを使おうと思ってダウンロードページを見てみる。
http://jung.sourceforge.net/download.html
三つのライブラリが必要とのこと。
・JDK5以上
・Collections-Generic
・Cern Colt
三つのライブラリをEclipseプロジェクトに置いてビルドパスを通しておく。
そして、Sourceforgeから Jung2.0.1を持ってくる。
jung-samples-2.0.1.jarの中なんとかDemoクラスのmainメソッドを実行すると
デモを見ることができる。個人的にはClusteringDemoが面白かった。
↑媒介性の高い辺を順に取り去っていってクラスタリングできる
さて、以下1からコードを書いてみる。
Jung 2からは Graphクラスは Graph<V, E>てな感じでVertexとEdgeのクラスを
指定できるようだ。VとかEにInterfaceはいらんのですね。
とりあえずGraph<String, String>で進めてみる。
のような感じでGraphを作成して、以下のようにViewerをJframeにaddすればOK
結果:グラフが表示された。

Vertexにラベルを表示するには?
PluggableRendererはなくなった?→なくなったようだ。
代わりにToStringLabellerをVertexLabelTransformerとしてsetする。
サンプルのコードを参照すれば何でも出来そう。
結果:ラベルが表示された。

今日はここまで。
(追記)Jung2を使って測定できる指標について調べ中。
・BetweennessCentrality を使うと、媒介中心性を計算してくれる。
Betweenness centrality (媒介中心性)は以前調べていた。
・KStepMarkovを使うとkステップでのページランクを計算してくれそう。
・MarkovCentralityでマルコフ中心性を計算してくれそう。
・RandomWalkBetweennessはランダムウオークで情報が伝わる際にどのくらい媒介するかしらべてくれそう。
http://jung.sourceforge.net/download.html
三つのライブラリが必要とのこと。
・JDK5以上
・Collections-Generic
・Cern Colt
三つのライブラリをEclipseプロジェクトに置いてビルドパスを通しておく。
そして、Sourceforgeから Jung2.0.1を持ってくる。
jung-samples-2.0.1.jarの中なんとかDemoクラスのmainメソッドを実行すると
デモを見ることができる。個人的にはClusteringDemoが面白かった。
↑媒介性の高い辺を順に取り去っていってクラスタリングできる
さて、以下1からコードを書いてみる。
Jung 2からは Graphクラスは Graph<V, E>てな感じでVertexとEdgeのクラスを
指定できるようだ。VとかEにInterfaceはいらんのですね。
とりあえずGraph<String, String>で進めてみる。
Graphg = new DirectedSparseGraph ();
g.addVertex("v1");
g.addEdge("e1", "v1", "v2");
...
のような感じでGraphを作成して、以下のようにViewerをJframeにaddすればOK
JFrame window = new JFrame("Graph");
Layout layout = new FRLayout(g);
VisualizationViewer viewer = new VisualizationViewer(layout);
window.add(viewer);
window.setSize(600, 600);
window.setLocationRelativeTo(null);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setVisible(true);
結果:グラフが表示された。

Vertexにラベルを表示するには?
PluggableRendererはなくなった?→なくなったようだ。
代わりにToStringLabellerをVertexLabelTransformerとしてsetする。
サンプルのコードを参照すれば何でも出来そう。
Renderer renderer = new BasicRenderer();
VisualizationViewer viewer = new VisualizationViewer(layout);
viewer.getRenderContext().setVertexLabelTransformer(new ToStringLabeller());
viewer.setRenderer(renderer);
結果:ラベルが表示された。

今日はここまで。
(追記)Jung2を使って測定できる指標について調べ中。
・BetweennessCentrality を使うと、媒介中心性を計算してくれる。
Betweenness centrality (媒介中心性)は以前調べていた。
・ある点の媒介中心性は他のすべての点同士の測地線にその点が
含まれる割合。
(最短のパスで通ろうとすると、その点を遠ってしまうペアの割合)
あるネットワークの媒介性の集中度は、その大きさのネットワークが
持ちうる最大の最大の媒介中心性の分散(スター型)で実際の分散を割ったもの。
・KStepMarkovを使うとkステップでのページランクを計算してくれそう。
・MarkovCentralityでマルコフ中心性を計算してくれそう。
・RandomWalkBetweennessはランダムウオークで情報が伝わる際にどのくらい媒介するかしらべてくれそう。