2013-06-19 64 views
1

我在下面有關assortativity(網絡)的文獻中找到了下圖。我想以與R & igraph類似的方式繪製我的網絡。 圖上的每個點對應一個網絡邊緣。在我的情況下,x軸應該表示源節點的度數,y軸表示目標節點的度數。我是R的初學者,因此非常感謝有人能幫我策劃這一點。 enter image description here如何繪製與R的assortativity?

我現在使用了Vincent Zoonekynd的代碼並得到了下圖。不過,我認爲它仍然沒有顯示正確的東西。軸上的節點應按其程度排序。當我看到這個情節時,我看到一些高度的節點圍繞在軸標記42,100或175周圍。這沒有多大意義。這裏的排名過程有什麼問題嗎?

A <- get.adjacency(USAN_g_num)    
image(A, ylim=c(0,627))    
i <- rank(degree(USAN_g_num), na.last=NA, ties.method="first") 
image(A[i,i], ylim=c(0,627)) 

(我添加了一個ylim的代碼,使兩者低 - 低度,高的高度相同的拐角plottet左下和右上) 但它是正確的,我的陰謀應該與我上面展示的看起來不同,因爲我的數據是不合適的。 enter image description here

+0

你看過'?igraph.plot'嗎?請嘗試自行做一些研究,並在發佈之前分享您嘗試過的方法以及它們的工作方式。 – Justin

+0

@Justin:嗯?igraph.plot實際上並不適用於我的版本,但我仍然檢查了igraph的繪圖命令。沒有找到創建我需要的圖的命令。我認爲首先需要一個相應的源節點和目標節點的矩陣。之後,我可以嘗試用點(如上所示)或某種相關矩陣圖來繪製它。但是我很難將我的想法帶入R代碼。 – SWR

回答

3

它看起來像圖的鄰接矩陣, 與節點按度排序。

# Sample data 
library(igraph) 
library(Matrix) 
g <- erdos.renyi.game(10, p=1/2) + erdos.renyi.game(10, p=1/2) 

# Plot the adjacency matrix 
A <- get.adjacency(g) 
image(A) 

# In this example, sorting the nodes by degree is not a good idea 
i <- order(degree(g)) 
image(A[i,i]) 
+0

謝謝。我試着用你的代碼,它非常有效。但我認爲排名過程出了問題。我更新了上面的初始文章。如果你可以看看會是完美的。 Thx再次。 – SWR

+0

這應該是固定的:我混淆了'秩序'和'秩序'... –

+0

哦完美thx。我也嘗試過'排序',但你說得對,'訂單'是正確的路要走。 – SWR