Sankey
IRIS Studio 의 챠트-테이블 의 sql 검색어 결과로 나온 데이터를 adv sankey 명령어로 sankey 차트로 바로 그릴 수 있습니다.
sankey 챠트를 그리기 위해서는 from-노드에서 to-노드, 즉 source 에서 target 으로 표시되는 edge 데이터의 통계량이 필요합니다.
데이터 모델
데이터 모델 : EDU_CHART_SEOUL_MELT_FIRE_CAUSE
기간 : 2011 ~ 2018년 연간 통계
내용 : 서울시 소방서별 / 화재원인별 발생 건수 통계
YEAR |
FIRE_CENTER |
FIRE_CAUSE |
CNT |
---|---|---|---|
2018 |
강남소방서 |
실화_화학적요인 |
6 |
2018 |
강남소방서 |
실화_기타 |
3 |
2018 |
강동소방서 |
실화_가스누출 |
4 |
2018 |
강동소방서 |
실화_부주의 |
191 |
2018 |
xx소방서 |
… |
… |
화재원인 중분류 컬럼 CAUSE_KIND 생성
총 11개의 화재 원인(FIRE_CAUSE)을 7개의 실화 원인을 “실화” 로, 2개의 방화 원인을 “방화” 로 묶어서 CAUSE_KIND
라는 중분류에 해당하는 새 화재 원인 컬럼을 생성합니다.
이 때 DSL case
문을 이용하여 중분류 컬럼의 값을 생성합니다.
검색어 구문
* | where YEAR = 2018
| case when FIRE_CAUSE like '실화%'
then '실화'
when FIRE_CAUSE like '방화%'
then '방화'
otherwise FIRE_CAUSE as CAUSE_KIND
결과
YEAR |
FIRE_CENTER |
FIRE_CAUSE |
CNT |
CAUSE_KIND |
---|---|---|---|---|
2018 |
강남소방서 |
실화_화학적요인 |
6 |
실화 |
2018 |
강남소방서 |
실화_기타 |
3 |
실화 |
2018 |
강남소방서 |
방화_명확 |
5 |
방화 |
2018 |
종로소방서 |
자연적인_요인 |
1 |
자연적인_요인 |
2018 |
xx소방서 |
… |
… |
… |
adv sankey 결과
adv sankey
명령어로 sankey 챠트를 그릴 수 있는 형태의 데이터로 변환합니다.챠트 유형을 테이블로 설정하면 변환된 데이터의 형태를 확인할 수 있습니다.
챠트 유형을 sankey 로 설정하면 바로 sankey 챠트가 그려집니다.
검색어
* | where YEAR = 2018
| case when FIRE_CAUSE like '실화%' then '실화'
when FIRE_CAUSE like '방화%' then '방화'
otherwise FIRE_CAUSE as CAUSE_KIND
| adv sankey sum(CNT) SPLITROW FIRE_CENTER, FIRE_CAUSE, CAUSE_KIND
SPLITROW 뒤에 나오는 필드가 sankey 챠트의 각 NODE이며, FIRE_CENTER -> FIRE_CAUSE -> CAUSE_KIND 로 flow 가 정해집니다.
선의 굵기는 각 NODE -> NODE 일 때의 값을 의미하며, 여기서는 발생건수(CNT)의 합계입니다.
제일 왼쪽 각 소방서의 노드(사각형) 크기는 2018년 각 소방서의 화재발생건수의 합계입니다.
예를 들어 구로소방서 노드의 크기는 2018년 구로소방서 촤재발생건수의 합 434 에 해당하는 크기입니다.
구로소방서 -> 실화부주의 로 가는 선의 굵기는 구로소방서에서 2018년에 실화부주의로 발생한 화재건수 267 건입니다.
두번째 노드 화재원인 중 실화부주의 노드 크기는 3939 건으로 왼쪽 24개 소방서에서 실화부주의로 발생한 화재건수의 합입니다.
가장 오른쪽 실화 의 크기 5701 건은 실화부주의 -> 실화, 실화_전기적요인 -> 실화, 실화_기계적요인 -> 실화 ,,, 의 합입니다.