본문 바로가기

iGraph

igraph(python) - 0

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 정보가 없는 기본적인 그래프 생성
>> #출력결과
IGRAPH U--- 0 0 --

 

그래프는 노드(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가 지정됩니다! ->음수, 실수... 안됨) 

0-1, 0-5로 생성된 그래프

 

 

vertex 0번과 1번, 0번과 1번 처럼 동일한 노드에서

edge를 두 번 이상 반복할 수 있습니다.

ex) edges=[[0,1], [0,1], [0,5]]

동일한 노드끼리 반복된 edge를 가질 때

 

 

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