- グラフは多次元データ
- それを2次元に描くためにノードの位置を定める必要がある
- 定め方が「グラフレイアウト」
- Rのigraphパッケージでは、いくつかのレイアウト関数があって、2次元座標を返してくれるのだが…
- その座標を「適切に」画面に配置するためのルールがよくわからなくて困った(ている)…
library(igraph)
ed.list <- matrix( c(1,2,1,3,2,4,1,5,3,4), nc=2, byrow=TRUE)
g <- graph.edgelist(ed.list)
plot(g)
coords <- layout.kamada.kawai(g)
plot(g,layout = coords)
v.col <- rep(1,length(coords[,1]))
v.col[c(2)] <- 3
plot(coords,cex = 4, pch = 19, col = v.col)
e.col <- rep(1,length(ed.list[,1]))
e.col[c(2)] <- 2
segments(coords[ed.list[,1],1],coords[ed.list[,1],2],coords[ed.list[,2],1],coords[ed.list[,2],2], col = e.col)
par(new =TRUE)
coords2 <- cbind(coords[,1],coords[,2]-0.1)
text(coords2,c("foo","bar","foobar","hoge","hage"),xlim = range(coords[,1]),ylim=range(coords[,2]))