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

NetworkX/Matplotlib로 노드 컬러맵 그리는 방법

Matplotlib과 NetworkX를 사용하면 그래프의 각 노드에 컬러맵(colormap)을 적용해 시각화할 수 있습니다. 노드 색상을 값에 따라 다르게 표현하면 그래프 구조를 한눈에 파악하는 데 큰 도움이 됩니다. 아래에서 단계별로 살펴보겠습니다.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯 사이 및 주변의 여백(padding)을 조정합니다.
  • nx.cycle_graph()를 사용하여 순환적으로 연결된 노드들의 사이클 그래프 C_n을 생성합니다.
  • nx.circular_layout()으로 노드들을 원형 위에 배치합니다.
  • nx.draw() 함수에 cmap 옵션을 지정하여 Matplotlib로 그래프를 그립니다.
  • plt.show() 메서드로 결과 그림을 화면에 표시합니다.

예제 코드

import matplotlib.pyplot as plt
import networkx as nx

# 그림 크기 및 레이아웃 자동 조정 설정
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

# 24개의 노드를 가진 사이클 그래프 생성
G = nx.cycle_graph(24)

# 노드를 원형으로 배치
pos = nx.circular_layout(G)

# node_color에 값 범위를 지정하고 copper 컬러맵 적용
nx.draw(G, pos, node_color=range(24), node_size=800, cmap='copper')

plt.show()

실행 결과

NetworkX/Matplotlib로 노드 컬러맵 그리는 방법NetworkX/Matplotlib로 노드 컬러맵 그리는 방법

코드 설명

node_color=range(24)는 각 노드에 0부터 23까지의 값을 순서대로 할당합니다. 이 값들은 cmap='copper'로 지정된 컬러맵을 거쳐 색상으로 변환되므로, 노드마다 서로 다른 색이 부여됩니다. 또한 node_size=800 옵션으로 노드의 크기를 조절할 수 있습니다. 이처럼 node_color에 숫자 리스트를 전달하고 원하는 컬러맵을 지정하기만 하면, 별도의 색상 계산 없이도 손쉽게 노드 컬러맵 그래프를 완성할 수 있습니다.