ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Tableau] 생키 다이어그램(Sankey Diagram) 시각화하기
    Data Visualization/Tableau(Advanced) 2020. 10. 18. 17:21

    Table of Contents

    1. Introduction
    2. Data
    3. Tableau에서 생키 다이어그램 시각화하기
    4. Reference

     

    Introduction

    생키 다이어그램(Sankey Diagram)은 각 단계별 물량의 변화를 한 눈에 표현하기 위한 목적으로 사용한다. 특히, 전체 물량이 어떤 곳으로 흘러가는지 혹은 어떤 단계에서 얼마나 많은 양이 이탈하는지까지도 한눈에 파악할 수 있는 효과적인 시각화이다. Severino Ribecca는 <그림 1>과 같이 생키 다이어그램의 정의를 구체적으로 제시하였다. 태블로에서는 생키 다이어그램을 표현하는 방법을 표현 방식으로 제공하고 있지 않기 때문에 이를 표현하기 위해서는 몇 가지 트릭이 필요하다.

    <그림 1> Severino의 생키 다이어그램 구조도

    Data

    다음 데이터를 다운로드하고 태블로 데스크탑 이나 퍼블릭에서 불러온다.

    sample_data.xlsx
    0.02MB

     

    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에서 생키 다이어그램 시각화하기

    <그림 2> 완성된 생키 다이어그램

     

    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 (구간차원)을 선택하고 마무리한다.

    <그림 3> 테이블 계산 편집을 활용하여 생키 다이어그램을 작성한 결과

    5. 시트 빈 곳에서 오른쪽 버튼을 눌러 나오는 팝업에서 서식을 들어가 생키 다이어그램이 표현하는데 방해될 만한 구분선 또는 배경 등을 제거한다.

    ※ 시트 구성에서 색상 또는 구분선 배경 등은 시트에서 판단하고 변경하는 것 보다 대시보드 구성 후 적절한 색상을 편집하는 것을 권장한다.

     

    6. 상단의 맞춤을 '표준'에서 '전체 보기'로 선택한다.

    <그림 4> 나머지 과정 수행 결과

     

    시각화 한 결과는 태블로 퍼블릭에서 참고할수 있다.

    public.tableau.com/views/__16022670576530/Sketch

     

    Reference

    Severino Ribecca ,"Sankey Diagram", datavizcatalogue.com/methods/sankey_diagram.html

     

     

     

     

    댓글

Designed by Tistory.