10. 인터랙티브 그래프(plotly 패키지)
🔗 'Do it! 쉽게 배우는 파이썬 데이터 분석' 책을 기반으로 JupyterLab 환경에서 학습한 내용입니다 _φ(๑╹╹๑)
📌 인터랙티브 그래프 준비
- plotly 패키지 설치: 아나콘다 프롬프트에 pip install plotly 작성
- plotly 패키지: 인터랙티브(마우스 움직임에 반응하며 실시간으로 모양이 변하는) 그래프를 생성하는 패키지
- jupyter-dash 패키지 설치: 아나콘다 프롬프트에 pip install jupyter-dash 작성
- jupyter-dash 패키지: plotly로 만든 그래프를 노트북에 출력하는 패키지
- 패키지 모두 설치 후, 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')'데이터 분석 > Python' 카테고리의 다른 글
| 11. 가설 검정(t 검정, 상관 분석) (0) | 2026.07.30 |
|---|---|
| 9. 지도 시각화(folium 패키지) (0) | 2026.07.29 |
| 8. 텍스트 마이닝(konlpy 패키지) (0) | 2026.07.28 |
| 7-2. 한국복지패널 데이터 분석(2) (1) | 2026.07.24 |
| 7-1. 한국복지패널 데이터 분석(1) (0) | 2026.07.23 |