Sankey 다이어그램은 데이터 흐름을 시각화하는 데 사용되는 다이어그램입니다. 이 다이어그램은 특히 에너지, 자금, 물자 등의 흐름을 나타내는 데 유용하며, 각 흐름의 크기를 직관적으로 이해할 수 있도록 도와줍니다. Sankey 다이어그램은 노드(노드 사이의 점)와 링크(노드를 연결하는 화살표)로 구성되어 있으며, 링크의 두께는 흐름의 크기를 나타냅니다.
파이썬에서는 여러 라이브러리를 사용하여 Sankey 다이어그램을 만들 수 있습니다. 그 중 가장 일반적으로 사용되는 라이브러리는 plotly
와 matplotlib
입니다. plotly
라이브러리를 사용하여 Sankey 다이어그램을 만드는 방법을 설명하겠습니다.
Plotly를 사용한 Sankey 다이어그램 만들기
1. 라이브러리 설치
먼저 Plotly 라이브러리를 설치해야 합니다. 터미널에서 다음 명령어를 실행하여 설치할 수 있습니다
pip install plotly
2. Sankey 다이어그램 생성
다음은 Plotly를 사용하여 Sankey 다이어그램을 생성하는 예제 코드입니다:
import plotly.graph_objects as go
# 노드와 링크 데이터를 정의합니다.
nodes = ["Source 1", "Source 2", "Intermediate 1", "Intermediate 2", "Destination 1", "Destination 2"]
links = [
{"source": 0, "target": 2, "value": 8},
{"source": 1, "target": 2, "value": 4},
{"source": 1, "target": 3, "value": 2},
{"source": 2, "target": 4, "value": 6},
{"source": 3, "target": 4, "value": 2},
{"source": 3, "target": 5, "value": 2}
]
# 노드 인덱스와 색상 설정
node_labels = [node for node in nodes]
node_colors = ["blue", "blue", "green", "green", "red", "red"]
# 링크의 소스, 타겟, 값 설정
link_source = [link["source"] for link in links]
link_target = [link["target"] for link in links]
link_value = [link["value"] for link in links]
# Sankey 다이어그램 생성
fig = go.Figure(data=[go.Sankey(
node=dict(
pad=15,
thickness=20,
line=dict(color="black", width=0.5),
label=node_labels,
color=node_colors
),
link=dict(
source=link_source,
target=link_target,
value=link_value
)
)])
fig.update_layout(title_text="Sankey Diagram Example", font_size=10)
fig.show()
이 코드는 "Source 1", "Source 2"에서 출발하여 "Intermediate 1", "Intermediate 2"를 거쳐 "Destination 1", "Destination 2"로 가는 흐름을 나타내는 Sankey 다이어그램을 생성합니다. 노드와 링크의 데이터는 리스트 형식으로 제공되며, 각 링크의 소스, 타겟, 값을 정의하여 다이어그램을 구성합니다.
위의 예제를 실행하면 웹 브라우저에서 Sankey 다이어그램을 볼 수 있습니다. Plotly는 인터랙티브한 시각화를 제공하므로, 다이어그램을 마우스로 드래그하거나 클릭하여 세부 정보를 확인할 수 있습니다.
'🖥️ IT, 컴퓨터 > 📁 데이터 분석' 카테고리의 다른 글
[빅데이터] 이업종간 결합 데이터란? :: 개념/예시 (0) | 2024.10.21 |
---|---|
[데이터 분석] 코딩 없는 뉴스기사 빅데이터 시각화 툴 : 빅카인즈 (1) | 2024.07.24 |
[빅데이터] 서울 빅데이터 캠퍼스 방문 후기, 꿀팁 (0) | 2024.07.10 |
[빅데이터] GranData : SK텔레콤, 신한카드, KCB의 데이터 협력 얼라이언스 (0) | 2024.06.13 |
전체 종사자 중 AI 자동화에 노출된 비율 (골드만삭스) (0) | 2024.05.26 |
댓글