Data Visualization
Interactive Visualization
& Other Visualization Methods
1. Interactive를 사용하는 이유
1.1. 정적 시각화의 단점
- 정형 데이터가 feature가 너무 많은 경우에 공간적 낭비가 너무 크다.
- 각각의 사용자마다 원하는 인사이트가 다를 수 있는데 정적 시각화는 모든 사람들에게 동일한 시각화 자료만 제시할 수 있다.
- 동적 시각화를 하면 필요한 인터렉션을 통해 원하는 정보를 얻을 수 있다.
- 물론 설득을 위해서 원하는 메세지를 압축해서 담는 것은 정적 시각화의 장점이기도 하다.
1.2. 인터랙티브 종류
- 이론적으로는 다음과 같은 종류가 있다.
- Select
- Explore
- Reconfigure
- Encode
- Abstract
- Filter
- Connect
- 동적 시각화의 대표 라이브러리는 크게 3가지가 있다.
- Plotly
- Bokeh
- Altair
- 문법과 제공하는 방법들이 차이가 있다.->원하는 라이브러리 선택!
2. Interactive Library
2.1. Matplotlib
- Matplotlib도 인터랙티브를 제공한다.
- 단, 주피터 노트북 환경 또는 local에서만 실행할 수 있다.
- 다른 라이브러리의 경우 웹에 deploy가 가능하다
- mpld3를 사용하면 웹에서 D3-based Viewer 제공
2.2. Plotly
- 인터랙티브 시각화에 가장 많이 사용되는 라이브러리
- 예시 + 문서화가 잘되어 있음
- 통계 시각화 외에도 지리 시각화 + 3D 시각화 + 금융 시각화 등 다양한 시각화 기능 제공
- JS 시각화 라이브러리 D3js를 기반으로 만들어져 웹에서 사용 가능
- 형광 Color가 인상적
2.3. Plotly Express
- Plotly를 seaborn과 유사하게 만들어 쉬운 문법
- 커스텀 부분이 부족하지만 다양한 함수를 제공함
2.4. Bokeh
- 문법은 matplotlib과 더 유사한 부분이 있음
- 기본 theme이 plotly에 비해 깔끔
- 비교적 부족한 문서화..
2.5. Altair
- Vega 라이브러리를 사용하여 만든 인터랙티브
- 시각화 + 연산 등으로 배치하는 것이 특징
- 문법이 Pythonic하지 않음(오히려 js스러움?이 있음)
- 데이터 크기에 5000개 제한
- Bar, Line, Scatter, Histogram에 특화
3. 실습
- 실습내용
- Interactive visualization
- Custom Matplotlib Theme
- Image & Text Visualization
- 깃허브 코드:
4. 회고
4.1. 회고
인터랙티브 시각화를 알고나서, '내가 너무 적은 도구를 가지고 시각화를 하고 있었구나'라는 생각을 했다. 또 내가 잘 아는 것들만 계속 쓰다보니 내가 쓰는 도구가 한정되었던 것 같다.
도구를 많이 알수록 내가 표현하고자 하는 것을 더 많이 표현할 수 있다.
배운 게 너무 많아서 다 받아들일 수 있을지 모르겠지만,
분석해볼 데이터 후보를 정하고 그 데이터를 분석하고 시각화 하면서 익혀나가야겠다.
특히 시간이 걸리더라도 처음 배운 것들 위주로 써보려는 연습을 해야게싿.
4.2. 해볼 것
- 데이콘 경진대회 데이터 분석
- 부캠 이미지 분류대회 데이터 분석