ComputerLanguage_Program/PYTHON
[PYTHON] floweaver 를 이용한 sankey 그래프 그리기
pbj0812
2021. 8. 10. 00:42
0. 목표
- floweaver 를 이용한 sankey 그래프 그리기
1. 실습
1) library 설치
- chrome 에서 실습할 것, safari 에서는 위젯 표출 시 에러 발생
!pip install ipysankeywidget
!pip install floweaver
2) 데이터 생성
- source : 어디에서
- target : 어디로
- type : 무엇을
- value : 얼마만큼 보내는가
flows = pd.DataFrame({
'source' : ['A', 'B', 'A', 'B', 'A', 'C', 'B', 'D', 'A', 'A'],
'target' : ['a1', 'a1', 'a2', 'a1', 'a3', 'a5', 'a4', 'a2', 'a3', 'a3'],
'type' : ['pv', 'pv', 'pv', 'pv', 'pv', 'pv', 'pv', 'pv', 'pv', 'pv'],
'value' : [1, 3, 7, 3, 10, 12, 45, 38, 2, 11]
})
3) 그룹화
- floweaver 를 사용하기 위해서는 중복된 데이터가 있으면 안되기에 그룹화 실시
flows2 = flows.groupby(by = ['source', 'target', 'type']).agg({'value' : sum})
flows2.reset_index(inplace = True)
4) 그림 그리기
- 튜토리얼에서는 records 를 입력하나, 어떤 문자를 넣어야 되는지는 잘 모르겠음... 아무 문자나 넣으면 또 안됨...
SankeyWidget(links=flows2.to_dict('r'))
- 마우스를 그래프에 올려놓으면 해당 흐름의 정보가 표출