igraph는 그래프를 표현하기 위한 python 패키지
해당 그림은 그래프를 나타내며 동그라미가 "node" 또는 "vertex"라고 하며,
동그라미끼리 이어진 선을 "edge(간선)"이라고 합니다.
해당 패키지에서는 동그라미를 vertex, 선은 edge라는 용어를 사용하여 표현합니다.
igraph는 pip를 통해 설치 가능
pip install igraph
불러오기
import igraph as ig
버전확인
print(ig.__version__)
2022년 12월을 기준으로 최신버전은 0.10.1
그래프 생성
g = ig.Graph() #vertex와 edge 정보가 없는 기본적인 그래프 생성
그래프는 노드(vertex)와 간선(edge)로 이루어져 있기에 이를 추가해야 합니다.
example)
만약 6개의 vertex와 2개의 edge를 가지는 그래프가 있으며,
0번 vertex와 1번 vertex가 연결되어 있고
0번 vertex와 5번 vertex가 연결되어 있다고 한다면, 아래와 같이 표현 가능합니다.
node=5 # vertex의 개수
edges=[[0, 1], [0, 5]] # edge 정보: 0번과 1번이 연결, 0번과 5번이 연결
g=ig.Graph(node,edges)
print(g) # 그래프 정보 출력
>> #출력결과
IGRAPH U--- 6 2 -- (차례대로 vertex의 개수, 간선의 개수)
+ edges: (현재 그래프의 edge 정보)
0--1 0--5 (0과 1이 이어져있고, 0과 5가 이어져 있다)
edge 입력
edge를 표현할 때는 list 형태로 표현하면 됩니다.
만약,
0번과 1번,
0번과 2번,
4번과 5번을 연결하고 싶다면
edges=[[0, 1], [0, 2], [4,5]] 로 표현할 수 있습니다.
(참고로 vertex의 값은 정수로 0부터 시작하여 0번 vertex, 1번 vertex, 2번 vertex... 처럼 차례대로 index가 지정됩니다! ->음수, 실수... 안됨)
vertex 0번과 1번, 0번과 1번 처럼 동일한 노드에서
edge를 두 번 이상 반복할 수 있습니다.
ex) edges=[[0,1], [0,1], [0,5]]
print(graph)를 사용한다면 그래프에서 vertex의 개수와 edge의 개수, edge의 정보를 출력할 수 있지만,
ig.summary(graph)를 사용한다면 vertex의 개수와 edge의 개수만을 보여줍니다.
print(graph) # vertex 개수와 edge 개수, edge 정보 출력
#IGRAPH U--- 6 2 --
#+ edges:
#0--1 0--5
ig.summary(graph) # vertex 개수와 edge 개수만 출력
#IGRAPH U--- 6 2 --
주의할 점
만약 vertex의 개수를 n = 6으로 지정하였는데, edge 정보를 "1 - 9"와 같이 1번과 9번을 연결시킬려고
한다면 지정된 index 이상의 값을 사용하여 에러가 발생합니다!
'iGraph' 카테고리의 다른 글
igraph 그리기 (0) | 2023.01.04 |
---|---|
igraph - 2 (0) | 2023.01.03 |
igraph - 1 (0) | 2023.01.01 |