2017年11月28日火曜日

R : 有向、無向グラフの描画

Rで有向、無向グラフの描画をするのにigraphパッケージを利用します。
(1) igraphのインストール、読み込み
install.packages("igraph")
library(igraph)
インストールは時間がかかりました。

(2)データの作成
エクセルでデータを作成します。今回は隣接行列(0 or 1)とします。
例えばエクセルで15×15の 0 or 1の行列を作っておきます( =RANDBETWEEN(0,1)を使いました)
これをgraph.csvとして文字コード:UTF-8、改行コード:LFにしてアップロードします。
 csvを取り込みます。



(2) グラフ描画

graph = as.matrix(graph)
plot(graph.adjacency(graph,mode="undirected",weighted=NULL))


(3) ノードの大きさの変更
csvに行和の合計を追加して、アップロードします。この行和が大きいほど他との関係も強いとします。
これをgraph01に取り込みます。そしてグラフ描画用のgraph01_1も用意しておきます。
graph01_1 = as.matrix(graph01[,1:15])
 グラフを描きます。
plot(graph.adjacency(graph01_1,mode="undirected",weighted=NULL),vertex.size=graph01$sum*4,edge.arrow.size=0.5)

 参考
http://www.shizukalab.com/toolkits/sna/sna_data
https://qiita.com/tomov3/items/c72e06eaf300b322e99d

0 件のコメント:

コメントを投稿