-
[Tableau] 생키 다이어그램(Sankey Diagram) 시각화하기Data Visualization/Tableau(Advanced) 2020. 10. 18. 17:21
Table of Contents
- Introduction
- Data
- Tableau에서 생키 다이어그램 시각화하기
- Reference
Introduction
생키 다이어그램(Sankey Diagram)은 각 단계별 물량의 변화를 한 눈에 표현하기 위한 목적으로 사용한다. 특히, 전체 물량이 어떤 곳으로 흘러가는지 혹은 어떤 단계에서 얼마나 많은 양이 이탈하는지까지도 한눈에 파악할 수 있는 효과적인 시각화이다. Severino Ribecca는 <그림 1>과 같이 생키 다이어그램의 정의를 구체적으로 제시하였다. 태블로에서는 생키 다이어그램을 표현하는 방법을 표현 방식으로 제공하고 있지 않기 때문에 이를 표현하기 위해서는 몇 가지 트릭이 필요하다.
Data
다음 데이터를 다운로드하고 태블로 데스크탑 이나 퍼블릭에서 불러온다.
Date Type Product Price Visit Sales 2017-12-31 핫 라떼 4000 132 528000 2017-12-31 핫 아메리카노 3500 117 409500 2017-12-31 아이스 아이스 라떼 4000 145 580000 2017-12-31 아이스 아이스 아메리카노 3500 118 413000 2017-12-31 아이스 포도 주스 4500 133 598500 2017-12-31 아이스 수박 주스 5000 0 0 2018-01-31 핫 라떼 4000 150 600000 2018-01-31 핫 아메리카노 3500 121 423500 2018-01-31 아이스 아이스 라떼 4000 123 492000 2018-01-31 아이스 아이스 아메리카노 3500 111 388500 2018-01-31 아이스 포도 주스 4500 146 657000 2018-01-31 아이스 수박 주스 5000 0 0 Tableau에서 생키 다이어그램 시각화하기
1. 태블로에서 생키 다이어그램을 시각화하는 방법은 간단하게 수행할 수 있다. 먼저, 태블로에 샘플 데이터를 연동하기 위해서 위의 실습용 샘플 데이터를 다운로드 한다.
2. 태블로에서 엑셀 파일을 연동한다.
※ 태블로 주요 기능(https://jaydata.tistory.com/46)을 참고한다.
3. 생키 다이어그램은 태블로에서 제공하는 시각화가 아니기 때문에 이를 만들기 위해서는 물량의 흐름을 표현해야 한다. 물량의 흐름을 표현하기 위해서는 곡선의 표현이 필요한데, 이 부분이 가장 난이도가 높다고 볼 수 있다.
구분 계산식 계산된 'Path' 함수 IF [Table Name] = 'Sheet1'
THEN 1
ELSE 49
END계산된 'T' 함수 (INDEX()-25)/4 계산된 'Sigmoid' 함수 1/(1+exp(1)^-[T]) 계산된 'Rank 1' 함수 RUNNING_SUM(SUM([Sales]))/TOTAL(SUM([Sales])) 계산된 'Rank 2' 함수 RUNNING_SUM(SUM([Sales]))/TOTAL(SUM([Sales])) 계산된 'Curve' 함수 [Rank 1] + (([Rank 2]-[Rank 1])*[Sigmoid]) 계산된 'Size' 함수 RUNNING_AVG(MIN({ FIXED [Type], [Product] : SUM([Sales])})) 4-1. 생키 다이어그램을 만들기 위해서 몇 가지 계산식을 활용해야 한다. 가장 먼저, 데이터의 흐름을 표현하기 위해서 최솟값 1과 최댓값 49를 강제로 표현해야 한다. 이미 데이터에는 이를 표현할 방식이 없기 때문에 동일한 테이블을 유니온하여 테이블 한개를 1로 표현하고, 또 다른 한 테이블을 49로 표현해준다. 이를 표현해준 계산식이 'Path'이다.
※ 해당 방식 외에도, 생키 다이어그램을 표현하는 방식이 있다.
4-2. 계산된 식 'Path'에서 오른쪽 버튼을 클릭하여, 구간차원을 생성한다. 이 구간 차원을 열 또는 행으로 옮기면 기본적으로 1과 49만 표현된다. 여기서 오른쪽 버튼을 클릭해서, '누락된 값 표시'를 클릭한다. 1부터 시작해서 49까지 숫자가 나열되는 것을 볼 수 있다.
4-3. 마크 패널의 표현 방식을 자동에서 라인으로 변경한다. 계산된 식 'T'를 열로 드래그하고, 'Curve'를 행으로 드래그한다. 우리가 표현하는 방식은 전체 음료수 판매량이 어떤 종류의 제품으로 판매가 되는지 한눈에 보고 싶기 때문에, Type과 Product를 세부 정보로 드래그한다. 다음으로, 이동구간을 표현하기 위해서 Path (구간차원)을 경로로 표현한다.
4-4. 열 패널에 위치한 'T' 알약에서 오른쪽 버튼을 클릭하여 테이블 계산을 편집한다. '다음을 사용하여 계산'에서 특정 차원을 선택하고, Path (구간차원)을 선택한다.
4-5. 행 패널에 위치한 'Curve' 알약에서 오른쪽 버튼을 클릭하여 테이블 계산을 편집한다. 계산된 식 'Curve'에는 테이블 편집할 지표가 3가지가 담겨진 계산식이다. 따라서, 이 3가지를 전부 수정해주어야 표현이 된다. 먼저, 중첩된 계산에서 Rank 1이 나타날 것이다. 이때, 특정 차원을 선택하고, Product -> Type -> Path (구간차원) 순으로 배치하고 전부 클릭한다. Rank 2를 클릭하고, 특정차원을 Type -> Product -> Path (구간차원) 순으로 배치하고 전부 클릭한다. 마지막으로, T를 클릭하고, 특정차원에서 Path (구간차원)을 선택하고 마무리한다.
5. 시트 빈 곳에서 오른쪽 버튼을 눌러 나오는 팝업에서 서식을 들어가 생키 다이어그램이 표현하는데 방해될 만한 구분선 또는 배경 등을 제거한다.
※ 시트 구성에서 색상 또는 구분선 배경 등은 시트에서 판단하고 변경하는 것 보다 대시보드 구성 후 적절한 색상을 편집하는 것을 권장한다.
6. 상단의 맞춤을 '표준'에서 '전체 보기'로 선택한다.
시각화 한 결과는 태블로 퍼블릭에서 참고할수 있다.
public.tableau.com/views/__16022670576530/Sketch
Reference
Severino Ribecca ,"Sankey Diagram", datavizcatalogue.com/methods/sankey_diagram.html
'Data Visualization > Tableau(Advanced)' 카테고리의 다른 글
[Tableau] 피라미드 차트(Pyramid Chart) 시각화하기 (4) 2022.04.23 [Tableau] 폭포 차트(Waterfall Chart) 시각화하기 (0) 2020.10.26 [Tableau] 막대 게이지 차트(Bar Gauge Chart) 시각화하기 (3) 2020.10.10 [Tableau] 게이지 차트(Gauge Chart) 시각화하기 (2) 2020.10.04 [Tableau] 레이더 차트(Radar Chart) 시각화하기 (16) 2020.09.27