Skip to main content

한 변수의 분포 시각화

Python 데이터 시각화

  • 데이터 시각화: 데이터를 그래프나 차트 등 시각적 형태로 표현하는 과정
  • matplotlib: Python의 대표적인 표준 시각화 라이브러리, 다양한 종류의 정적, 애니메이션, 인터랙티브 시각화 생성 가능
  • seaborn: matplotlib을 기반으로 하며, 더 아름답고 통계적으로 의미 있는 고급 시각화 기능을 간편하게 제공
  • 임포트:
import matplotlib.pyplot as plt # matplotlib의 pyplot 모듈
import seaborn as sns # seaborn 라이브러리

히스토그램 histogram

  • 데이터를 구간별로 나눠, 각 구간의 사례 수를 막대그래프로 그린 것
  • Python에서 데이터 시각화를 위한 라이브러리 "시본"을 임포트
import seaborn as sns
  • histplot 함수를 이용해서 히스토그램 그리기
    • 데이터는 df로 지정
    • x축(가로)은 price로 지정
    • 'price'는 변수가 아닌 df의 한 열 이름이므로 따옴표를 쳐서 문자열로 표시
sns.histplot(x='price', data=df)

커널 밀도 추정 kernel density estimation

  • 데이터 밀도 추정 기법
sns.kdeplot(x='price', data=df)

데이터 포인트 눈금으로 표시

  • 아래 두 코드를 한 셀에서 실행
sns.kdeplot(x='price', data=df)
sns.rugplot(x='price', data=df)

히스토그램 + 커널 밀도 추정

  • kde=True로 설정하면 데이터의 밀도를 추정하여 표시
sns.histplot(x='price', data=df, kde=True)

ECDF

  • ECDF(Empirical Cumulative Distribution Function), 즉 '경험적 누적 분포 함수'
  • 히스토그램과 달리 구간 설정 필요 X
  • 커널 밀도 추정과 달리 추정치가 아님(경험적)
  • 데이터의 분위수를 쉽게 파악 가능
sns.ecdfplot(data=df, x="price")

비교

  • 모델별로 색상(hue)을 달리해서 그림
sns.kdeplot(data=df, x="price", hue="model") # 왼쪽
sns.ecdfplot(data=df, x="price", hue="model") # 오른쪽

상자-수염 그림 (Box Plot)

  • sns.boxplot(x='범주형열', y='숫자형열', data=데이터프레임) 또는 sns.boxplot(data=데이터프레임의_숫자형열):
  • 데이터의 사분위수, 중앙값, 이상치 등을 상자 그림으로 표현
  • 범주별 데이터 분포 비교에 유용
sns.boxplot(data=df, y='price') # 가격 분포
sns.boxplot(data=df, x='model', y='price') # 모델별 가격 분포

퀴즈

사용자 정보 입력
퀴즈를 시작하기 전에 이름과 소속을 입력해주세요.

Q&A