視覚化

ryamada2222222012-12-22

  • Rではigraphパッケージを使ってグラフオブジェクトを扱ってみる
  • igraphパッケージのグラフ表示機能はあまり協力ではなく、適当なグラフ書式でファイル書きだしをしたうえで、グラフ視覚化アプリケーションを使うという手もある
  • とはいえ、「シンプル・素朴」、とにかく「簡単」を目指すのであれば、R内でそれなりに見える方がよい
  • そのあたりの調査をしてみる
# igraphパッケージのインストールと読み込み
install.packages("igraph")
library(igraph)
  • グラフオブジェクトの作成
# 10 vertices named a,b,c,... and no edges
g <- graph.empty() + vertices(letters[1:10])

# Add edges to make it a ring
g <- g + path(letters[1:10], letters[1], color="grey")

# Add some extra random edges
g <- g + edges(sample(V(g), 10, replace=TRUE), color="red")
g$layout <- layout.circle
if (interactive()) {
  plot(g)
}

# The old-style operations
g <- graph.ring(10)
add.edges(g, c(2,6,3,7) )
delete.edges(g, E(g, P=c(1,10, 2,3)) )
delete.vertices(g, c(2,7,8) )
  • グラフオブジェクトの描図にて、ラベル名が操作できないとつらいのでそれの確認
# 日本語フォントも使いたい
# 陽本語フォントも使いたい
members <- c("竜畑","滋賀腹","陽笠","葵井","竜本","櫓本","腹","粒","町上","堀皮","車(雀)","車(住)","小皮","竹顔","開賀","畑町","玉壁","成畑","皮口")
g <- graph.empty() + vertices(members)
path.stat.kiso <- c("竜畑","滋賀腹","畑町","町上","陽笠","小皮","成畑","竜本","車(住)","車(雀)","葵井","竜畑")
path.stat.ronbun <- c("陽笠","滋賀腹","成畑","葵井","皮口","町上","車(住)","車(雀)","竜畑","陽笠")
path.R.kiso <- c("滋賀腹","成畑","陽笠","腹","葵井","堀皮","竹顔","町上","竜畑","竜本","車(雀)","車(住)","小皮","粒","滋賀腹")
path.math <- c("櫓本","小皮","玉壁","畑町","竹顔","開賀","車(住)","竜畑","櫓本")
# ノードの属性を呼びだす関数V()、呼びだした後、そのうち"$name"で選択的に取り出す
plot(g,vertex.label=V(g)$name)
g <- g + path(path.stat.kiso,color="red")
g <- g + path(path.stat.ronbun,color="blue")
g <- g + path(path.R.kiso,color="green")
g <- g + path(path.math,color="pink")
plot(g,vertex.label=V(g)$name)

  • igraphオブジェクトを書きだして、他のアプリケーションで使うために
help(write.graph)