2015-08-28 40 views
6

我想繪製一個只顯示某些頂點標籤的圖。在這種情況下,我只想顯示具有一定數量邊的頂點的標籤。僅在R中使用igraph顯示網絡圖上的特定標籤

我讀頂點和邊到圖形對象像這樣:

nodes <- read.csv("path_to_file.csv") 
edges <- read.csv("path_to_file.csv") 
g <- graph_from_data_frame(edges,directed=TRUE,vertices=nodes) 

我使用下面的命令繪製圖形和基於連接($ RELS的數量而變化的邊緣的寬度屬性是連接兩個頂點之間的號碼):

plot.igraph(g,vertex.size=3,vertex.label.cex=0.5,layout=layout.fruchterman.reingold(g,niter=10000),edge.arrow.size=0.15,edge.width=E(g)$rels/100) 

有沒有辦法說,例如,只有具有> 100個邊緣的頂點應該顯示自己的標籤嗎?如果我嘗試在我的csv文件中留下頂點標籤,igraph認爲它們是重複的頂點。數據

nodes.csv 
name | org_id 
U.S. Department of Energy | 70063 
Environmental Protection Agency | 100000 

edges.csv 
from | to | rels 
U.S. Department of Energy | Hanford SSAB | 477 
Natural Resources Defense Council | Environmental Protection Agency | 322 
+2

您已經一直在SO上一段時間,所以你現在應該知道提供你的數據,或者至少是一個有代表性的樣本。否則,我們必須爲您製作數據,以演示解決方案。 – jlhoward

+0

@jlhoward偉大的觀點,謝謝!添加。 – tchaymore

回答

6


例子嘗試

library(igraph) 
set.seed(1) 
g <- sample_pa(20) 
V(g)$label <- letters[1:20] 
plot(g, vertex.label = ifelse(degree(g) > 2, V(g)$label, NA)) 

有度大於2,只顯示了頂點標籤:

enter image description here

+0

關於你的回答(相當晚)後續問題,我的問題與這個問題密切相關(爲什麼我不問一個'新'問題):如果你不使用度數或介於中心性,而是特徵向量或樞紐中心位置,那麼您的建議如何工作(因爲您必須指定矢量以正確使用值)?你(或其他人)有想法嗎? –

+0

@Stefan_W最好打開一個新的問題,展示一個小例子,你嘗試過什麼,爲什麼它不起作用。 – lukeA

相關問題