NetworkX로 그래프에 노드 이름 표시하기
Python의 NetworkX 라이브러리와 Matplotlib을 함께 사용하면 그래프를 시각화하면서 각 노드의 이름까지 손쉽게 표시할 수 있습니다. 아래 단계를 따라 진행해 보세요.
- 그림(figure) 크기를 설정하고, 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
- 간선, 이름 또는 그래프 속성을 지정하여 그래프 객체를 초기화합니다.
- add_nodes_from() 메서드를 사용해 여러 개의 노드를 한 번에 추가합니다.
- add_edges_from() 메서드를 사용해 모든 간선(edge)을 추가합니다.
- draw() 메서드로 Matplotlib을 통해 그래프 G를 그립니다. 이때 with_labels=True 옵션을 지정하면 노드 이름이 함께 표시됩니다.
- plt.show() 메서드를 호출하여 완성된 그래프를 화면에 출력합니다.
예제 코드
import matplotlib.pylab as plt import networkx as nx plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True G = nx.DiGraph() G.add_nodes_from([1, 2, 3, 4]) G.add_edges_from([(1, 2), (2, 1), (2, 3), (1,4), (3,4)]) nx.draw(G, with_labels=True) plt.show()
위 코드에서는 방향 그래프(DiGraph)를 생성하고, 네 개의 노드와 다섯 개의 방향성 간선을 추가했습니다. with_labels=True 옵션이 핵심으로, 이 값을 생략하면 노드 이름 없이 점만 표시되므로 주의하세요.
실행 결과

결과 이미지를 보면 각 노드 옆에 숫자 라벨(노드 이름)이 함께 나타나는 것을 확인할 수 있습니다. 이처럼 NetworkX의 draw 함수는 기본적으로 Matplotlib 위에서 동작하기 때문에, figure 크기나 레이아웃 등 일반적인 Matplotlib 설정을 그대로 활용할 수 있다는 장점이 있습니다.