Graph setting
vertex와 edge는 arrtibutes가 있으며 이름, 좌표, 메타데이터, 가중치 등을 말한다.
간단한 예시를 들기 위해 그래프 생성
import igraph as ig
g = ig.Graph([(0,1), (0,2), (2,3), (3,4), (4,2), (2,5), (5,0), (6,3), (5,6)])
# 0-1, 0-2, 2-3, 3-4, 4-2, 2-5, 5-0, 6-3, 5-6 edge를 가지는 그래프 생성
# 0부터 6까지 총 7개의 vertex와 9개의 edge가 생성됩니다
위 그래프에서 우리는 vertex와 edge에 여러 정보를 setting할 수 있습니다.
g.vs[" "]를 통해 vertex에 attributes를 설정할 수 있고,
g.es[" "]를 통해 edge에 attributes를 설정할 수 있습니다.
g.vs["name"] = ["Wonjong", "Bora", "Jaehyeon", "Junhyung", "Jihyeon", "HyoJung", "Gilsu"]
g.vs["age"] = [72, 24, 26, 30, 22, 23, 50]
g.vs["gender"] = ["m", "f", "m", "m", "f", "f", "m"]
g.es["is_married"] = [False, True, False, True, True, False, True, False, False]
#vertex에 name, age, gender를 설정하였고
#edge는 서로 결혼여부를 확인하고 있습니다
만약 위 attribute를 수정하고 싶다면, 다음과 같이 할 수 있습니다.
g.es[0]["is_married"] = True # edge의 is_married attribute에서 0번을 수정
g.vs[1]["name"] = "BoRa" #vertex name에 1번 index에 해당하는 "Bora"를 "BoRa"로 수정
그래프를 print로 출력하면,
print(g)
IGRAPH UN-- 7 9 --
+ attr: age (v), gender (v), name (v), is_married (e)
+ edges (vertex names):
Wonjong -- Boram, Jaehyeon, HyoJung HyoJung -- Wonjong,
Jaehyeon, Gilsu
Boram -- Wonjong Gilsu -- Junhyung,
HyoJung
Jaehyeon -- Wonjong, Junhyung, Jihyeon, HyoJung
Junhyung -- Jaehyeon, Jihyeon, Gilsu
Jihyeon -- Jaehyeon, Junhyung
다음과 같이 출력되는 것을 확인할 수 있습니다.
※ 한 번에 바꾸는 것도 가능
g.es[:5]["is_married]=True # 5번 index까지 전부 True로 수정
'iGraph' 카테고리의 다른 글
igraph 그리기 (0) | 2023.01.04 |
---|---|
igraph - 1 (0) | 2023.01.01 |
igraph(python) - 0 (1) | 2023.01.01 |