Python에서 네트워크 구조를 다룰 때 NetworkX는 가장 널리 사용되는 라이브러리 중 하나입니다. 이 라이브러리를 Matplotlib와 함께 활용하면 격자(lattice) 형태의 그래프나 일반적인 네트워크 그래프를 손쉽게 시각화할 수 있습니다.
격자 그래프 그리는 단계
NetworkX로 격자 및 그래프를 그리려면 아래 단계를 따르면 됩니다.
- 라이브러리 임포트: networkx와 matplotlib의 pyplot 모듈을 불러옵니다.
- 그림 크기 설정: figure 크기를 지정하고, 서브플롯 주변 및 사이의 여백(padding)을 조절합니다.
- 격자 그래프 생성:
nx.grid_2d_graph(3, 3)을 사용해 2차원 격자 그래프를 생성합니다. 이 그래프에서 각 노드는 상하좌우에 있는 네 개의 최근접 이웃 노드와 연결됩니다. - 그래프 그리기: Matplotlib의 draw 기능으로 그래프 G를 화면에 그립니다.
- 결과 표시:
show()메서드를 호출하여 그림을 출력합니다.
예제 코드
# networkx와 pyplot 임포트 import networkx as nx from matplotlib import pyplot as plt # 그림 크기 설정 plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True # 그래프 그리기 G = nx.grid_2d_graph(3, 3) nx.draw(G, node_size=100) plt.show()
실행 결과
위 코드를 실행하면 3×3 크기의 2차원 격자 그래프가 출력됩니다. 각 노드가 자신의 네 방향 이웃 노드와 선으로 연결되어 마치 바둑판처럼 배치된 모습을 확인할 수 있습니다.


grid_2d_graph(m, n)의 인자 값을 변경하면 원하는 크기의 격자를 자유롭게 만들 수 있으며, node_size, node_color, with_labels 등의 옵션을 추가하면 노드의 크기, 색상, 라벨 표시 여부도 세부적으로 조절할 수 있습니다.