2011年11月18日金曜日

Rでネットワーク図を描く

Rが面白い.簡単に色々とできてしまう.

今回はigraphライブラリでネットワーク図の作成にトライしてみる.

まずライブラリを読み込む.
> library(igraph)
つぎに隣接行列を作る.
> d<-matrix(c(0,0,1,1,0,1,1,0,0),ncol=3,nrow=3)
行列のサイズを確認する.
> dim(d)
[1] 3 3
行列を表示する.
> d
     [,1] [,2] [,3]
[1,]    0    1    1
[2,]    0    0    0
[3,]    1    1    0
 行列から重み付き有向グラフを作成する.
> g<-graph.adjacency(d,mode="directed",weighted=TRUE)
グラフ情報を確認する.
> summary(g)
Vertices: 3
Edges: 4
Directed: TRUE
No graph attributes.
No vertex attributes.
Edge attributes: weight.
最後にグラフを画像ファイルに書き出す.
> png("c:/tmp/myplot.png",width=400, height=400,pointsize=12)
> plot(g,vertex.color="white",vertex.label=V(g)$name,edge.color="black",edge.label=E(g)$weight,vertex.size=10)
> dev.off()
null device
          1 

0 件のコメント:

コメントを投稿