Seaborn을 활용한 네트워크 그래프 시각화

Seaborn은 파이썬 데이터 시각화 라이브러리 중 하나로, 통계적 그래프를 그리는 데에 특화되어 있습니다. Seaborn을 사용하면 쉽고 간단하게 데이터셋의 패턴과 관계를 시각화할 수 있습니다. 이번 글에서는 Seaborn을 활용하여 네트워크 그래프를 시각화하는 방법에 대해 알아보겠습니다.

데이터 불러오기

먼저, 네트워크 그래프를 시각화하기 위해 필요한 데이터를 불러옵니다. 예를 들어, 네트워크의 노드(node)와 연결(edge) 정보를 담은 CSV 파일을 사용할 수 있습니다. Pandas를 사용하여 데이터를 불러옵니다.

import pandas as pd

data = pd.read_csv('network_data.csv')

그래프 생성하기

불러온 데이터를 기반으로 네트워크 그래프를 생성합니다. Seaborn의 networkxmatplotlib를 함께 사용하여 그래프를 그릴 수 있습니다.

import networkx as nx
import matplotlib.pyplot as plt
import seaborn as sns

# 그래프 생성
G = nx.from_pandas_edgelist(data, 'source', 'target')

# 그래프 시각화
sns.set(style='white')
plt.figure(figsize=(8, 6))
pos = nx.spring_layout(G)  # 노드 위치 결정
nx.draw_networkx(G, pos)
plt.axis('off')
plt.show()

그래프 스타일링

네트워크 그래프를 더욱 멋지게 꾸미기 위해 다양한 스타일링 옵션을 적용할 수 있습니다. 예를 들어, 노드와 연결선의 색상, 크기, 라벨 등을 수정할 수 있습니다.

# 그래프 스타일링
sns.set(style='white')
plt.figure(figsize=(8, 6))
pos = nx.spring_layout(G)

# 노드 스타일링
nx.draw_networkx_nodes(G, pos, node_color='blue', node_size=200, alpha=0.5)

# 연결선 스타일링
nx.draw_networkx_edges(G, pos, edge_color='gray', alpha=0.2)

# 노드 라벨 표시
labels = {node: node for node in G.nodes()}
nx.draw_networkx_labels(G, pos, labels, font_size=12)

plt.axis('off')
plt.show()

결론

Seaborn을 사용하면 네트워크 그래프를 쉽게 그릴 수 있으며, 그래프를 스타일링하여 더욱 멋지게 표현할 수 있습니다. 이를 통해 데이터셋의 구조와 관계를 시각적으로 파악할 수 있습니다.

더 자세한 내용은 Seaborn 공식 문서를 참고하시기 바랍니다.

참고 자료