2013-07-02 136 views
5

是否有可能重命名igraph中的頂點。我想用頂點上的不同符號多次繪製某個圖。鑑於以下的igraph AZ:R igraph重命名頂點

> az 
IGRAPH DN-- 24 23 -- 
+ attr: name (v/c), label (v/c), color (v/c), fill (v/c), width (e/n) 

> V(az) 
Vertex sequence: 
[1] "x1" "x2" "x3" "x4" "x5" "x7" "x8" "x9" "x10" "x11" "x12" "x13" 
[13] "x14" "x15" "x16" "x19" "x20" "x21" "x22" "x23" "x24" "x25" "x26" "x27" 

我想改變的頂點爲,讓說Y1-Y27 然而,

V(az)$name <- paste("y",1:27,sep="") 

不工作。我怎樣才能做到這一點? 在此先感謝。

乾杯

編輯: 爲了記錄。

V(az)$name <- paste("y",1:27,sep="") 

作品以這種方式,所以它返回:

> V(az) 
    Vertex sequence: 
    [1] "y1" "y2" "y3" "y4" "y5" "y7" "y8" "y9" "y10" "y11" "y12" "y13" 
    [13] "y14" "y15" "y16" "y19" "y20" "y21" "y22" "y23" "y24" "y25" "y26" "y27" 

然而,圖(AZ)劇照返回與x個節點圖

+0

你寫了'V(as)'而不是'V(az)'是否正常? – dickoa

+0

哦,謝謝你的提示。這是一個錯字。它應該是V(az)$ name < - paste(「y」,1:27,sep =「」) –

+0

你怎麼知道它不起作用?有錯誤訊息? – dickoa

回答

11

您可以使用

ay <- set.vertex.attribute(az, "name", value=paste("y",1:27,sep="")) 

也適用於"label"而不是"name"

+0

這是一個很好的方式來設置標籤。非常感謝你。 –

9

如果V(az)同時具有一組「name」屬性和一組「標籤」屬性,則它是繪製的「標籤」屬性。

> gt <- graph.tree(24, children = 4, mode=c("out", "in", "undirected")) 
> V(gt)$name <- letters[1:24] 
> plot(gt) # So 'name's get displayed if no label is present 
> V(gt)$label <- LETTERS[1:24] 
> plot(gt) # Labels get displayed 
> V(gt)$name <- letters[1:24] # see if then get overwritten 
> plot(gt) # Still plots with 'label's 
+0

+1非常consise問題的介紹。謝謝 – dickoa

+0

感謝您指出。這就說得通了。 –