10. 인터랙티브 그래프(plotly 패키지)

🔗 'Do it! 쉽게 배우는 파이썬 데이터 분석' 책을 기반으로 JupyterLab 환경에서 학습한 내용입니다 _φ(๑╹╹๑)

 

📌 인터랙티브 그래프 준비


  1. plotly 패키지 설치: 아나콘다 프롬프트에 pip install plotly 작성
    • plotly 패키지: 인터랙티브(마우스 움직임에 반응하며 실시간으로 모양이 변하는) 그래프를 생성하는 패키지
  2. jupyter-dash 패키지 설치: 아나콘다 프롬프트에 pip install jupyter-dash 작성
    • jupyter-dash 패키지: plotly로 만든 그래프를 노트북에 출력하는 패키지
  3. 패키지 모두 설치 후, JupyterLab 재실행

 

 

 

📌 산점도


  • 산점도 생성: plotly 패키지 express 모듈의 scatter(data_frame = 데이터프레임명, x = '변수명', y = '변수명', color = '색상 구분할 변수') 함수 활용
import pandas as pd
import plotly.express as px

# 사용할 파일 불러오기
mpg = pd.read_csv('mpg.csv')

# 산점도 생성
px.scatter(data_frame = mpg, x = 'cty', y = 'hwy', color = 'drv')

 

 

 

 

📌 막대 그래프


  • 막대 그래프 생성: plotly 패키지 express 모듈의 bar(data_frame = 데이터프레임명, x = '변수명', y = '변수명', color = '색상 구별할 변수명') 함수 활용
# 자동차 종류별 빈도 생성
df = mpg.groupby('category', as_index = False)\
.agg(n = ('category', 'count'))

# 막대 그래프 생성
px.bar(data_frame = df, x = 'category', y = 'n', color = 'category')

 

 

 

📌 선 그래프


  • 선 그래프 생성: plotly 패키지 express 모듈의 line(data_frame = 데이터프레임명, x = '변수명', y = '변수명') 함수 활용
# 사용할 파일 불러오기
economics = pd.read_csv('economics.csv')

# 선 그래프 생성 (date가 object 타입이어도, ISO 형식이라면 자동으로 그래프 생성)
px.line(data_frame = economics, x = 'date', y = 'psavert')

 

 

 

📌 상자 그림


  • 상자 그림 생성: plotly 패키지 express 모듈의 box(data_frame = 데이터프레임명, x = '변수명', y = '변수명', color = '색상 구별할 변수명') 함수 활용
    • 값 설명
      • max: 존재하는 값 중 최대값
      • upper fence: 정상적인 데이터의 범위로 인정해 주는 상한선 (Q3 + 1.5IQR)
      • q3: 제3사분위수
      • median: 중앙값
      • q1: 제1사분위수
      • lower fence: 정상적인 데이터의 범위로 인정해 주는 하한선 (Q1 - 1.5IQR)
      • min: 존재하는 값 중 최소값
px.box(data_frame = mpg, x = 'drv', y = 'hwy', color = 'drv')

 

 

 

📌 인터랙티브 그래프 기능 활용


  • 특정 값 확인: 마우스 커서 올리기

 

  • 축 범위 변경: 마우스 드래그, 그래프 더블 클릭 시 원래대로 돌아온다.

 

  • 특정 범주 표시 on/off: 범례 항목 클릭

 

  • HTML 파일로 저장: write_html('파일명') 함수를 활용하며, 웹 브라우저만 있으면 열어볼 수 있다.
# 그래프 변수에 할당
fig = px.scatter(data_frame = mpg, x = 'cty', y = 'hwy')

fig.write_html('scatter_plot.html')