[掲示板へもどる]
一括表示

  [No.953] 共起ネットワークでMSTのみ描画について 投稿者:袋井  投稿日:2012/05/10(Thu) 20:42:44

樋口先生様;

お世話になります、袋井と申します。

毎々、マニアックな質問でご迷惑をお掛けしております。


MST(最小スパン木)機能により重要なつながりが強調表示されますが、見易さを高めるためにMSTのみを描画したいと思います。

MST以外のエッジを非表示にするなどの技法もあるかと思いますが、知識が乏しいためにできません。

ノードのレイアウトが変わってしまうかもしれませんが、以下の手順・手続きでもよいのか、ご確認をさせてください。
よろしくお願いします。

−−−
Rファイルを保存

保存したRファイルを実行

グラフが描画された後に、以下のコマンドを実行

# MSTの検出
mst <- minimum.spanning.tree(
n2,
weights = 1 - get.edge.attribute(n2, "weight"),
algorithm="prim"
)

# n2オブジェクトへコピー
n2 <- mst


以降、保存したRファイルのn2描画コードをコピー&ペーストして実行

−−−

それらしいグラフが表示されますが、ご確認させてください。

よろしくお願いします。


  [No.954] Re: 共起ネットワークでMSTのみ描画について 投稿者:HIGUCHI Koichi  投稿日:2012/05/10(Thu) 22:32:41

こんにちは、樋口です。書き込みありがとうございます。

はい、お書きいただいた内容で間違いないと思います。

MSTを表示しない設定で共起ネットワークを作成し、「R-Source」形式で保存
し、お書きいただいたコマンドを「# 初期配置」という行の直前に挿入してい
ただいても良いでしょう。

Edgeの数が60以下のシンプルなネットワークで、KH Coder上でのMST表示と、
MSTのみにしたものを比較していただくと、成功していることがはっきりしよ
うかと思います。

> MST以外のエッジを非表示に

これもおもしろそうですが、MSTのみを表示するのであれば、MSTのみでレイア
ウトをやり直したほうが見やすい表示になるでしょう。すなわち現在なさって
いるやり方が良いかと思います。


とは言いつつ、もしご自身でお試しになる場合は、まずMSTを表示する設定で
共起ネットワークを作成し、「R-Source」形式で保存します。

そして、「# MSTに合致するedgeを強調」という行を検索し、直後に、以下の行
を挿入します。
> edg_lty <- rep(0, ecount(n2) )

例によって最初の「>」は無視して、それ移行を挿入して下さい。

上書き保存をしてRで実行すれば、レイアウトを変えずに、MST以外のエッジが
非表示になります。(それほど見やすくないかもしれないと思いますが…)

以上、ご参考にしていただける部分がありましたら幸いです。


  [No.957] Re: 共起ネットワークでMSTのみ描画について 投稿者:袋井  投稿日:2012/05/12(Sat) 07:00:23

樋口先生 様;

お世話になります、袋井と申します。

ご丁寧にご教示いただきましたので、よく分かりました。
理解を深めることができました。

MSTのみで「再レイアウト」をしたグラフは、
更にグラフ分割(modularity)のオプションを加えると、KH Coderの上質なカラーリングの効果が大きく、
天体望遠鏡、万華鏡を覗くように綺麗に見えます。
(もし、モノクロならば、顕微鏡の世界です)

改めて、カラーリングの重要性を再認識しました。

御礼を申し上げます。