データ・マイニング/Rでネットワーク構造を可視化する
をテンプレートにして作成
開始行:
*はじめに [#yb7fa054]
Rを用いてネットワーク構造を可視化したので,そのメモです.
*準備 [#r89eea09]
igraphパッケージを使います.
#geshi(rsplus){{
install.packages("igraph")
library("igraph")
}}
*データの読み込み [#z63f74fe]
ネットワークは隣接行列で表現します.
そこで,隣接行列をCSV形式で作成し,Rに読み込みます.
ここでは,1行目と1列目には頂点の名前が入っているものとし...
#geshi(rsplus){{
data <- read.csv("data.csv", header=T, row.names=1)
}}
これを隣接行列に変換します.
ここでは無向グラフ("undirected")とします.
#geshi(rsplus)){{
g <- graph.adjacency(data,mode="undirected")
}}
*ネットワーク構造の可視化 [#v2b5813c]
レイアウトをfruchterman.reingoldにして,ネットワークを表...
ネットワークが大きいので,頂点の大きさ(vertex.size)を2...
#geshi(rsplus){{
plot(g,layout=layout.fruchterman.reingold,vertex.size=2,v...
}}
#ref(network.png,nolink,50%);
*見た目を変える [#f1810546]
このネットワークには1,460個の頂点がありますが,最初の691...
そこで,形と色を変えて表示します.
#geshi(rsplus){{
V(g)$shape="circle"
V(g)$color="red"
for (i in 692:1460) {
V(g)$shape[i]="square"
V(g)$color[i]=NA
}
plot(g,layout=layout.fruchterman.reingold,vertex.size=2,v...
}}
#ref(network2.png,nolink,50%);
このfruchterman.reingoldのように,内部で乱数を用いている...
表示する前に乱数のシードをセットすれば,毎回同じ形で表示...
#geshi(rsplus){{
set.seed(0)
plot(g,layout=layout.fruchterman.reingold,vertex.size=2,v...
}}
終了行:
*はじめに [#yb7fa054]
Rを用いてネットワーク構造を可視化したので,そのメモです.
*準備 [#r89eea09]
igraphパッケージを使います.
#geshi(rsplus){{
install.packages("igraph")
library("igraph")
}}
*データの読み込み [#z63f74fe]
ネットワークは隣接行列で表現します.
そこで,隣接行列をCSV形式で作成し,Rに読み込みます.
ここでは,1行目と1列目には頂点の名前が入っているものとし...
#geshi(rsplus){{
data <- read.csv("data.csv", header=T, row.names=1)
}}
これを隣接行列に変換します.
ここでは無向グラフ("undirected")とします.
#geshi(rsplus)){{
g <- graph.adjacency(data,mode="undirected")
}}
*ネットワーク構造の可視化 [#v2b5813c]
レイアウトをfruchterman.reingoldにして,ネットワークを表...
ネットワークが大きいので,頂点の大きさ(vertex.size)を2...
#geshi(rsplus){{
plot(g,layout=layout.fruchterman.reingold,vertex.size=2,v...
}}
#ref(network.png,nolink,50%);
*見た目を変える [#f1810546]
このネットワークには1,460個の頂点がありますが,最初の691...
そこで,形と色を変えて表示します.
#geshi(rsplus){{
V(g)$shape="circle"
V(g)$color="red"
for (i in 692:1460) {
V(g)$shape[i]="square"
V(g)$color[i]=NA
}
plot(g,layout=layout.fruchterman.reingold,vertex.size=2,v...
}}
#ref(network2.png,nolink,50%);
このfruchterman.reingoldのように,内部で乱数を用いている...
表示する前に乱数のシードをセットすれば,毎回同じ形で表示...
#geshi(rsplus){{
set.seed(0)
plot(g,layout=layout.fruchterman.reingold,vertex.size=2,v...
}}
ページ名: