Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib와 NetworkX로 2차원 격자 그래프 시각화하기

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차원 격자 그래프가 출력됩니다. 각 노드가 자신의 네 방향 이웃 노드와 선으로 연결되어 마치 바둑판처럼 배치된 모습을 확인할 수 있습니다.

Matplotlib와 NetworkX로 2차원 격자 그래프 시각화하기Matplotlib와 NetworkX로 2차원 격자 그래프 시각화하기

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