본문 바로가기
경영수업

유입경로, 경로분석을 시각화하기 위한 생키(Sankey) 차트 쉽게 만들기

by 오르고오르다 2022. 7. 24.
728x90
반응형

Sankey 차트 쉽게 만들기

데이터 시각화?

데이터 시각화? 요즘 흔하게 듣는 말이지만 대체 어떻게 데이터를 시각화해야하는지... 

복잡하고 거창한 말을 다 걷어내면, 데이터 시각화는 결국 숫자로된 복잡한 데이터를 알아보기 쉽고 편하게 보여주는 것이라 할 수 있는데요. 

데이터 시각화의 가장 쉬운 예로는 그래프, 챠트 같은 것이 있습니다.

아주 오래전부터 엑셀이나 파워포인트에서 그 기능을 제공했죠. 

꺾은선 그래프라든지 원그래프 등등 시각화 하고자 하는 부분을 '드래그(drag)'하고 '삽입(insert)'의 '차트(Chart)'를 누르면 누구나 쉽게 데이터 시각화를 할 수 있습니다. 

쉽게 생키차트 만들기

그런데 요즘엔 이런 차트 말고 새로운 차트를 쓰라고 강권(?) 아닌 권유를 하는 것 같습니다. 아직도 꺾은선 그래프냐고 하면서 말이죠.

사실, 기존의 엑셀, 파워포인트에서 제공하는 시각화 방법은 한계가 있습니다. 데이터의 연관성이라든지 빈도, 경로 등등 표현이 어려운 경우가 많죠. 

그 중 Shankey Chart 라고 있습니다. 유입경로, 데이터간의 관계 등을 한눈에 보여주는 시각화 방법인데요.

생키차트(Sankey chart) 는 흐름(Flow) 차트의 한 종류로서 그 화살표의 너비로 흐름의 양을 비율적으로 보여주는 차트입니다. 

이 역시 엑셀, 파워포인트에서 제공하지 않습니다. 이 차트를 만들고 싶으면 'R'이라든지 파이썬 등 다소 생소한 프로그램을 써서 만들어야합니다. 하지만 웹에서 이를 제공하는 곳이 있습니다. 

 

 

쉽게 Sankey Chart 만들기

http://sankey-diagram-generator.acquireprocure.com/

 

The Sankey Diagram Generator

The Sankey Diagram Generator is a free and easy to use web application for generating and sharing Sankey Diagrams

sankey-diagram-generator.acquireprocure.com

고맙게도 이렇게 생키차트를 타이핑 몇번만 하면 만들 수 있는 사이트가 있네요. 

영어라서 다소 거부감이 들지만, 몇개만 알면 쉽게 생키차트를 만들 수 있습니다. 

 

1. 우선 표현하고자 하는 데이터를 정리해야 합니다. 

예로 A라는 온라인 스토어에 어떤 고객의 유형이 유입이 되어서 어떤 제품을 구입했는지를 Sankey Chart 로 만들어보겠습니다. 

  가방 모자
20대 남자 2 6
20대 여자 10 3

 

반응형

 

2. 데이터를 정리했다면 이제 바로 만들수 있습니다. 

위의 웹사이트에 들어가서 'Load' -> 'Your Own Data'를 누르시면 세가지 형태로 데이터 값을 입력할 수 있습니다. 

생키차트 만들기

1) JSON 형태로 입력하기

복잡한 코드를 입력해야하는 것 같지만, 위에서 정의한 데이터 테이블만 있다면 걱정할 것 없습니다.

{"nodes":[{"node":0,"name":"node0"},
{"node":1,"name":"node1"},
{"node":2,"name":"node2"},
{"node":3,"name":"node3"},
{"node":4,"name":"node4"}
],
"links":[
{"source":0,"target":2,"value":2},
{"source":1,"target":2,"value":2},
{"source":1,"target":3,"value":2},
{"source":0,"target":4,"value":2},
{"source":2,"target":3,"value":2},
{"source":2,"target":4,"value":2},
{"source":3,"target":4,"value":4}
]}

"links" 전의 코드는 항목을 정해주는 겁니다. " '0'은 'node 0' 뜻해" 라고 약속해주는 거죠. 
그리고 "links" 뒤에는 관계를 말해주는 코드입니다. " '0'은 '2'에게 값(value) 2를 줘 "

다시 우리 예로 가보면 '0'은 '20대 남자'라고 약속하고 " '0(20대 남자'는 '2(가방)'을 2개 샀어"라고 정리할 수 있겠죠. 

{"nodes":[{"node":0,"name":"20대남자"},
{"node":1,"name":"20대여자"},
{"node":2,"name":"가방"},
{"node":3,"name":"모자"}
],
"links":[
{"source":0,"target":2,"value":2},
{"source":0,"target":3,"value":6},
{"source":1,"target":2,"value":10},
{"source":1,"target":3,"value":3}
]}

JSON 코드로 생키차트 만들기

 

2) CSV 형태로 입력하기

제가 생각했을 때 가장 쉬운 방법인데요. 정리된 내용을 " source,target,value " 순으로 입력해주면 끝입니다. 

source,target,value
20대남자,가방,2
20대남자,모자,6
20대여자,가방,10
20대여자,모자,3

 

3) Pivot 형태로 입력하기

이 방법은 테이블을 복사, 붙이기만 하면 만들 수 있지만, 보다 복잡한 구조의 생키차트를 만들때는 어려운 점이 있습니다. 

 

이렇게 생키차트를 만들어 봤고요, 색이라든지 관계 설정 등도 수정할 수 있으니 이를 잘 활용하시기 바랍니다. 

728x90
반응형