2014-03-12 22 views
2

我嘗試創建網絡佈局的圖片(以最終說明網絡隨着時間的推移如何變化)。我的建議是創建一個最終網絡(請參閱net0),然後逐個節點(及其邊緣)刪除節點。刪除R中的節點並保持圖形的佈局固定

如何確保我的圖形佈局保持不變? (並且不重新調整!) 最終目標:

  1. 添加相同的佈局到:不同數量的節點,但因爲在最後的圖形NET0

    我的做法定義完全相同的佈局圖的順序減少的網絡圖給我相同的佈局,但先前刪除的節點不會丟失

  2. 只接受原始佈局的一個子集,但是然後我的圖重新調整。

代碼:

library(igraph) 
data <- structure(c("A","A","D","D","F","G","B","B","D","G","D","G","G","F","H","H","G","D","I","I"),.Dim = c(10L, 2L), .Dimnames = list(NULL,c("source","target"))) 
layout <-structure(c(-3.26,-5.50,-2.33,0.48,-3.37,-7.44,-10.00,-8.32,-5.09,-5.19,-3.15,-2.22,-1.9,-4.00),.Dim = c(7L, 2L), .Dimnames = list(NULL, c("coordinate.1", "coordinate.2"))) 


net0 <- graph.edgelist(data, directed=FALSE) 
par(pin=c(9, 4.7), mai=c(0.5, 0.1, 0.15, 0.1)) 

plot(net0, layout=layout) 

net <- delete.edges(net0, c(9,10)) 
net <- delete.vertices(net, c("I")) 
plot(net, layout=layout) 

net <- delete.edges(net0, c(9,10)) 
net <- delete.vertices(net, c("I")) 
plot(net, layout=layout[1:6,]) 

回答

7

添加布局xy頂點屬性:

V(net0)$x <- layout[,1] 
V(net0)$y <- layout[,2] 

這些都是由plot()自動使用,見?layout.auto,默認佈局。