2014-09-28 250 views
2

我正在嘗試使用節點的座標創建igraph圖形。我意識到沒有直接的方法通過用於R的igraph程序包來完成此操作。使用節點的XY座標設置(igraph)圖形

有些方法可以使用layout()函數在2D空間上繪製圖表,但我需要從已知的座標的節點。我會很感激任何人都可以提供這個幫助。

爲什麼我試圖用這種方式設置圖表?在用座標參數化圖形節點之後,我想使用考慮節點之間的距離的概率測量來連接節點。

謝謝。 Hitaysh

# Initial Co-ordinates of nodes 
    n = 1000 # no. of nodes 
    nodes.coord <- data.frame(x=runif(n,min=0,max=n), 
           y=runif(n,min=0,max=n)) 

    # Set up a graph with nodes on above co-ordinates... 

P.S.這是我在StackOverflow上的第一篇文章。關於如何更好地提出問題的任何建設性反饋也是受歡迎的。

+0

我不明白你在做什麼。圖結構完全獨立於繪製的xy座標。如果要控制渲染節點的位置,可以使用'plot.igraph()'中的'layout ='參數(請參閱'?igraph :: layout')。 xy座標不告訴你連接哪個節點。請閱讀[如何創建可重現的示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example),幷包括示例輸入和期望的輸出。 (如果你打算使用runif,也可以使用'set.seed()',這樣我們可以得到相同的值)。 – MrFlick 2014-09-28 17:18:23

回答

1

閱讀您的問題當場打死多次後,我猜測,這樣的事情會工作

n = 20 # no. of nodes 
set.seed(15) 
nodes.coord <- data.frame(
    x=runif(n,min=0,max=n), 
    y=runif(n,min=0,max=n) 
) 
gg <- graph.empty(n) 
plot(gg, layout=as.matrix(nodes.coord[,c("x","y")])) 

enter image description here

但是,如果你要根據距離來連接節點,它可能是有道理的在創建igraph對象之前查找連接,因爲您已經知道位置。

+0

謝謝MrFlick,我喜歡在創建圖表之前計算連接的想法。我會盡快發佈我的代碼的簡化版本。 – Hitaysh 2014-09-29 03:12:07