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

NetworkX에서 Matplotlib로 노드 윤곽선 색상을 변경하는 방법

NetworkX로 생성한 그래프에서 노드의 윤곽선(테두리) 색상을 변경하고 싶다면 set_edgecolor() 메서드를 사용하면 됩니다. 이 메서드는 draw_networkx_nodes()가 반환하는 노드 컬렉션 객체에 적용할 수 있으며, 원하는 색상을 인자로 전달하기만 하면 됩니다.

구현 단계

  • fromto 열을 가진 Pandas 데이터프레임을 생성합니다.
  • 엣지 리스트가 담긴 Pandas DataFrame으로부터 그래프 객체를 만듭니다.
  • spring_layout() 등을 사용해 노드들의 좌표(위치)를 계산합니다.
  • draw_networkx_nodes()를 호출하여 그래프의 노드를 화면에 그립니다.
  • 반환된 노드 객체에 set_edgecolor()를 적용해 윤곽선 색상을 설정합니다.
  • show() 메서드를 호출하여 최종 그림을 출력합니다.

예제 코드

from networkx import *
import matplotlib.pyplot as plt
import pandas as pd

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

df = pd.DataFrame({'from': ['A', 'B', 'C', 'A'], 'to': ['D', 'A', 'E', 'C']})
G = nx.from_pandas_edgelist(df, 'from', 'to')
pos = spring_layout(G)

nodes = draw_networkx_nodes(G, pos)
nodes.set_edgecolor('red')

plt.show()

실행 결과

위 코드를 실행하면 각 노드에 빨간색 윤곽선이 적용된 그래프가 출력됩니다. set_edgecolor()에는 'red'처럼 색상 이름뿐만 아니라 HEX 코드(#FF0000)나 RGB 튜플도 사용할 수 있으므로, 시각화 목적에 맞게 다양한 색상을 자유롭게 지정할 수 있습니다.

NetworkX에서 Matplotlib로 노드 윤곽선 색상을 변경하는 방법