-
[NetworkX] 무방향, 방향 그래프 생성하기 (파이썬 네트워크 분석 1)Data & ML & AI/NetworkX 2022. 7. 30. 22:40반응형
네트워크(그래프)는 item들 간의 연결성을 포함, 표현하는 방식입니다.
그리고 파이썬을 이용해 네트워크 구조, 데이터셋을 쉽게 다룰 수 있습니다.
NetworkX라는 라이브러리를 이용하면 쉽게 진행할 수 있습니다. (공식링크)
# 기본 라이브러리는 아니기 때문에, 따로 설치해줘야 합니다. $ pip install networkx
1. 무방향 그래프(가장 기본적인 그래프) 생성하고 그리기
import networkx as nx %matplotlib notebook G = nx.Graph() G.add_edge('A','B') G.add_edges_from([('B','C'),('C','F'),('C','E'),('E','D'),('F','G')]) nx.draw_networkx(G)
NetworkX의 장점 중 하나는, 노드(node)를 먼저 정의하지 않았더라도
엣지(edge)만 정의함으로써 노드, 엣지를 모두 그래프에 입력할 수 있다는 점입니다.
G.add_edge('A','B') 만으로 노드 A, B, 그리고 그 둘 사이의 엣지를 정의했습니다.
그리고 G.add_edges_from()를 이용해서 한번에 여러개의 엣지를 정의했습니다.
2. 방향 그래프 생성하고 그리기
import networkx as nx %matplotlib notebook G = nx.DiGraph() G.add_edge('B','A') G.add_edges_from([('B','C'),('C','F'),('C','E'),('E','D'),('G','F')]) nx.draw_networkx(G)
방향그래프는 DiGraph()를 사용합니다.
'방향'을 가지고 있기 때문에, 입력 입력 순서를 주의해야 합니다.
G.add_edge(출발노드, 도착노드)임에 주의하세요.
그림을 그리면 화살표 부분이 굵은 선으로 표시되어서 나타납니다.
본 게시물은 Coursera의 Applied Social Network Analysis in Python(by Daniel Romero)를 통해 자습하며 작성한 게시물입니다.
반응형'Data & ML & AI > NetworkX' 카테고리의 다른 글
[NetworkX] 그래프 데이터 읽기 (파이썬 네트워크 분석 6) (1) 2022.10.11 [NetworkX] 그래프 종류 종합정리 (파이썬 네트워크 분석 5) (0) 2022.10.09 [NetworkX] 멀티그래프, Multigraph (파이썬 네트워크 분석 4) (0) 2022.08.02 [NetworkX] 부호그래프, 기타 속성 부여하기 (파이썬 네트워크 분석 3) (0) 2022.08.01 [NetworkX] 가중그래프, Weighted Graph (파이썬 네트워크 분석 2) (0) 2022.07.31