2013-10-10 5 views
4

형용사는 파이썬에서 NumPy와 배열 igraph에 플롯합니다추가 정점 라벨

from igraph import * 
g = Graph.Adjacency(adj.tolist()) 
plot(g) 

이미지가 가지고 있지 정점 만 노드와 엣지의 레이블. 레이블 또는 꼭지점 시퀀스를 표시하기 위해 플롯을 활성화하려면 어떻게해야합니까? 그래프의 정점은 정점 속성이 label라는 이름의이 일어날 경우 igraph 그를 사용,

plot(g, vertex_label=["A", "B", "C"]) 

: 감사합니다,

답변

7

당신은 plot()vertex_label 키워드 인수 목록으로 표시 할 레이블을 지정할 수 있습니다 기본적으로 줄거리에, 그래서 당신은이 작업을 수행 할 수 있습니다

g.vs["label"] = ["A", "B", "C"] 
plot(g) 

은 자세한 내용은 Graph.__plot__ 함수의 설명서를 참조하십시오. ( plot()은 첫 번째 인수로 전달하는 객체의 __plot__ 메서드를 호출하는 단순한 래퍼입니다.)

+1

고마워요! 노드의 순서는 무엇입니까? 즉, 레이블 'A'가 노드 0을 어떻게 나타낼 수 있습니까? 또 다른 주제 질문은 레이아웃 알고리즘의 소스 코드를 어디에서 찾을 수 있습니까? – Sean

+2

igraph 그래프의 노드와 모서리는 항상 0부터 시작하는 숫자 ID를 가지며 레이블은 숫자 ID의 증가 순서로 지정해야합니다. Graph.Adjacency를 사용하여 그래프를 구성한 경우 인덱스가 * i * 인 노드는 항상 행렬의 행/열 * i *에 해당합니다. –

+2

레이아웃 : 특정 레이아웃 알고리즘을 지정하지 않은 경우 igraph가 사용하는 알고리즘은 그래프의 크기에 따라 달라집니다. https://github.com/igraph/igraph/blob/master/interfaces/python/igraph/__init__.py#L1328을 참조하십시오. 그러나 실제 레이아웃 알고리즘은 C : https://github.com/igraph/igraph/blob/master/src/layout.c에서 구현됩니다. –