Skip to content

PSLeon24/interactive_data_visualarization_with_plotly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 

Repository files navigation

interactive_data_visualarization_with_plotly

plotly로 시작하는 인터랙티브 데이터 시각화

1. 데이터 시각화(data visualization)

  • 데이터 시각화: 데이터 분석 결과를 사람들이 이해하기 쉽도록 다양한 그래픽 요소를 사용하여 데이터의 특성을 표현하는 방법
    • 일반적으로 데이터는 표, 플롯, 그래프로 구성된 차트, 인포그래픽, 다이어그램 또는 지도 형태로 시각화 됨
  • 데이터 시각화 활용 사례
    • 데이터 간의 상관관계, 시간 경과에 따른 추세, 빈도, 시장 조사, 위험 및 보상, 시장 대응
  • 데이터 과학(data science): 데이터를 다루고, 모델링하고, 분석하고, 예측하는 일련의 과정
    • 데이터를 수집하고, 전처리하고, 클리닝(cleaning)하는 과정을 거친 후 EDA와 모델링을 통해 분석 및 예측을 진행하고, 분석 결과를 문서화하기 위한 시각화 단계로 마무리 됨

1_1. 데이터 시각화의 필요성 및 데이터 시각화의 이유

  • 빅데이터 시대의 비즈니스 환경에서 효율적인 의사 결정을 하기 위해서는 수많은 데이터를 보기 쉽게 정리하고 이를 통한 스토리텔링을 통해 설득할 수 있는 데이터 리터러시가 중요한 요소가 되었음
    • 데이터 리터러시: 데이터를 요약하고 분석하여 청중이 알기 쉽게 정리한 결과를 적절한 양식으로 작성하여 전달하는 능력
  • 데이터는 수많은 수치와 문자들로 이루어져 있어 사람이 이해하기 어려움. 하지만 이를 시각화하면 아래와 같은 이점이 있음
    • 데이터 이해가 편리, 빠른 의사 결정, 청중의 주의력과 집중력 향상, 데이터 패턴의 파악, 이상치 및 오륫값 검출, 데이터 스토리텔링, 비즈니스 인사이트
    • One look is worth a thousand words. / 백 번 듣는 것보다 한 번 보는 것이 낫다 / 백문이 불여일견

1_2. 데이터 시각화로 표현할 수 있는 것들

  • 분포(distribution): 데이터들이 전반적으로 어떻게 혹은 얼마나 흩어져 있는지를 파악(평균, 중앙값, 범위, 분산, 표준편차)
  • 비교(comparison): 특정 변수의 변화에 따른 값들의 차이를 확인하기 위해 사용(막대그래프, 선 그래프, 히트맵 등)
  • 추세(trend): 시간의 흐름에 따른 값의 변화를 표현하는 방법(선 그래프를 많이 사용하며 막대그래프도 가능)
  • 구성(composition): 전체에 대한 비율(백분율)을 시각적으로 표현하는 데 사용(원그래프 또는 막대그래프)
  • 상관관계(correlation): 독립변수(x)와 종속변수(y)로 정의되는 데이터를 시각화하여 이 두 변수간의 전체적인 분포가 어떤 관계를 맺고 있는지를 보여줌(산점도)
  • 지리(geographic): 데이터를 지도나 약도 위에 표현함으로써 지역 간의 데이터의 차이를 보여주는 시각화 방법

1_3. 차트, 플롯, 그래프

  • 차트, 플롯, 그래프에 대한 명확한 구분은 없으며 차트, 플롯, 그래프라는 용어를 혼용하여 사용
  • 차트(chart): 특정 문제에 대해 여러 청중을 대상으로 브리핑하기 위해 문자, 숫자, 그래프, 플롯 등을 활용하여 만든 자료
    • 파이 차트, 도넛 차트 등
  • 플롯(plot): 주로 데이터의 위치를 직접 표현하는 시각화 방법
    • 산점도, 박스 플롯, 바이올린 플롯 등
  • 그래프(graph): 점과 점들을 잇는 선으로 구성된 구조
    • 선 그래프, 막대그래프 등
  • 다이어그램(diagram): 기술적 유형의 집합과 데이터의 성질을 표현하기 위해 선, 화살표 등의 시각적 고리들로 연결된 형태의 유형
    • 순서도, 벤다이어그램, 차트, 표 등

2. Plotly로 시각화하기

2_1. Plotly란?

  • 캐나다의 데이터 시각화 전문 회사의 이름, 이 회사가 만든 가장 우명한 제품이 Plotly 시각화 패키지
  • Plotly 시각화 패키지는 파이썬, R, 자바스크립트, 매트랩 등 다양한 언어에서 사용 가능
  • plotly 패키지 설치: pip install plotly

2_2. Plotly 구조

  • Plotly: 시각화 생성을 위한 다양한 속성 데이터를 트리 형태로 구조화한 JSON 객체 - 리스트([]) 안에 딕셔너리({key : value})로 구성
  • plotly.graph_objects 모듈
    • Plotly에서 제공하는 모든 기능을 사용하는 정규 방법
    • Plotly 객체를 만들기 위해서는 Figure() 함수를 사용하여 Plotly 객체를 초기화하여 생성
    • 초기화된 객체에 data, layout 속성을 할당
      • plotly.graph_objects.add_trace()
      • plotly.graph_objects.update_layout()
  • plotly.express 모듈
    • plotly.graph_objects에서 제공하는 많은 속성 중에 자주 사용되는 속성을 매개변수화하여 쉬운 인터페이스로 설계한 함수들로 구성한 모듈
    • Plotly는 data 속성과 layout 속성이 루트 노드인 속성들의 트리 구조로 구현, plotly.express는 트리 형태로 구성하지 않기 때문에 사용하기 쉽다는 장점이 있음
    • 단점
      • mesh나 isourface와 같은 3차원 시각화는 아직 plotly.express에서 지원하지 않음
      • 여러 개의 트레이스를 가지는 서브플롯이나 다중 축의 사용, 패싯(facet)과 같은 시각화는 plotly.express로 생성하는 데에는 한계가 있음
  • Plotly 라이브러리 모듈 로딩 및 객체 초기화
import plotly.graph_objects as go
import plotly.express as px
import plotly.offline as pyo
pyo.init_notebook_mode() # 맥북에서 무반응 해결

fig = go.Figure()
fig.show()
  • data 속성
    • data 속성: 시각화를 통해 표현해야 할 데이터와 그 표현 방식을 설정하는 속성(데이터를 표현하는 *트레이스를 구성하는 세부 속성들을 뜻함)
    • 트레이스: Plotly로 시각화할 수 있는 그래픽적 데이터 표현 방법(e.g., scatter, pie, bar, etc.)
      • 트레이스를 추가하기 위해서는 add_trace()를 사용, 이를 사용하기 위해서는 반드시 type 속성으로 트레이스 종류를 설정

3. 트레이스

4. layout 속성

5. 서브플롯

6. 색상 설정

7. 관계와 분포의 시각화

8. 비교와 구성의 시각화

9. 시간과 흐름의 시각화

10. 지수와 지도의 시각화

11. 시각화 컨트롤

12. Plotly 시각화 사용하기

13. Plotly 배포

14. 효과적인 시각화 만들기

About

plotly로 시작하는 인터랙티브 데이터 시각화

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published