2012-04-10 6 views
3

内のノードの位置を維持するために:どのように私は次のグラフを持っていると私はベクトルを持つノードの位置座標を設定するとIGRAPH + R


library(igraph) 
library(Cairo) 

g9<- graph(c(0,1,0,2,0,3,1,4,1,2,3,4,3,5,4,5,5,2),n=6,dir=FALSE) 
V(g9)$name<-c(1:6) 
V(g9)$label<-V(g9)$name 
coords <- c(0, 0, 1.00000000000000, 0,0.500000000000000, 0.866025403784439, 0.300000000000000, 0.200000000000000, 0.441421356237309, 0.341421356237310,0.248236190979496,0.393185165257814) 
coords <- matrix(coords, 6,2,byrow=T) 
plot(g9,layout=coords) 

今、私は次のように追加した場合コードは、私は再び座標レイアウトを設定する必要があります


vc<-c(0,1,1,2,2,3,3,1) 
gp<-graph(vc,dir=FALSE); 
listSub<-graph.get.subisomorphisms.vf2(g9,gp) 

m<-matrix(c(unlist(listSub)),length(listSub),length(unique(vc)),byrow=T) 
md<-m[!duplicated(m[,1]),] 

g<-delete.vertices(g9,c(m[1,2])) 

dev.new() 

coord <- c(0, 0, 1.00000000000000, 0,0.500000000000000, 0.866025403784439, 0.441421356237309, 0.341421356237310,0.248236190979496,0.393185165257814) 
coord <- matrix(coord, 5,2,byrow=T) 
plot(g,layout=coord) 

これらのレイアウトの位置をデフォルトにするにはどうすればよいですか?各名前の対応する位置を失うことなくグラフの構造を変更できますか?


答えて

1

あなたは初期coord行列 を維持し、唯一の部分グラフのために必要な行を抽出することもできます。

plot(g9, layout = coords[ V(g9)$name, ]) 
plot(g , layout = coords[ V(g)$name, ]) 
+0

ありがとう、それは動作します! – user1310873

関連する問題