2013-07-02 5 views
5

igraph에서 정점의 이름을 바꿀 수 있습니까? 나는 꼭지점에 다른 표기법을 사용하여 특정 그래프를 여러 번 플롯하고자합니다. 다음 igraph의 AZ 감안할 때 :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" 

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

가 작동하지 않는, 그러나 Y1-Y27의 말할 수 있습니다. 이것을 어떻게 할 수 있습니까? 미리 감사드립니다.

건배

편집 : 기록을 위해 . 그 방법으로

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) 스틸은

+0

'V (az)'대신'V (as)'를 쓰셨습니까? – 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="")) 
사용할 수있는 X 노드와 그래프를 반환

"name" 대신 "label"과 작동합니다.

+0

그게 라벨을 설정하는 깔끔한 방법. 고맙습니다. –

9

V (az)에 'name'속성 세트와 'label'속성 세트가 모두있는 경우 'label'속성이 그려집니다.

> 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 매우 문제의 프레젠테이션. 감사합니다. – dickoa

+0

감사합니다. 그건 의미가 있습니다. –

관련 문제