Matplotlib & Seaborn — 데이터 시각화 라이브러리

Summary

Matplotlib은 Python 표준 시각화 라이브러리이고, Seaborn은 Matplotlib을 확장하여 통계 시각화를 간소화한 고수준 인터페이스.

Matplotlib은 Python 표준 시각화 라이브러리이고, Seaborn은 Matplotlib을 확장하여 통계 시각화를 간소화한 고수준 인터페이스.

개요

Matplotlib: 저수준 명령형 그래프 생성 도구. 선, 마커, 색상, 레이아웃 세밀 조정 가능.

Seaborn: Matplotlib을 감싸서 통계 그래프(분포, 상관, 카테고리 비교)를 간단한 코드로 생성. 기본 스타일이 더 보기 좋음.

주요 차트 유형

단변량 분석 (Univariate)

Histogram: 범주형 변수의 빈도 분포

plt.hist(df[col], bins=20)  # Matplotlib
sns.histplot(df[col])       # Seaborn
  • 용도: 어떤 카테고리가 가장 흔한가?

Kernel Density Plot (KDE): 연속변수의 확률밀도

sns.kdeplot(df[col])
  • 용도: 데이터 분포 형태 (정규분포? 편향?)

Swarm Plot: 개별 데이터 점 산점도

sns.swarmplot(data=df, x=col1, y=col2)
  • 용도: 이상치(outlier) 시각적 식별

이변량 분석 (Bivariate)

Scatter Plot: 두 연속변수의 관계

plt.scatter(df[col1], df[col2])
sns.scatterplot(data=df, x=col1, y=col2)
  • 패턴: 우상향(양의 상관) vs 우하향(음의 상관) vs 분산(관계 없음)

Violin Plot: 범주별 연속변수 분포

sns.violinplot(data=df, x=category, y=value)
  • 용도: 카테고리 A vs B의 값 분포 비교

Box Plot: 중앙값, 사분위수, 이상치

sns.boxplot(data=df, x=category, y=value)
  • 구조: 상자(Q1-Q3) + 중앙선(중앙값) + 수염(범위) + 점(이상치)

다변량 분석 (Multivariate)

Correlation Heatmap: 모든 수치형 변수 간 상관계수

sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
  • 색상 코드:
    • 빨강(+1): 강한 양의 상관
    • 파랑(-1): 강한 음의 상관
    • 흰색(0): 상관 없음
  • 용도: 다변량 의존성 한눈에 파악

Pair Plot: 모든 변수 쌍의 분포 + 산점도

sns.pairplot(df)
  • 대각선: 히스토그램 (개별 분포)
  • 비대각선: 산점도 (변수 쌍 관계)

Matplotlib vs Seaborn 선택

상황추천
간단한 차트 (선, 막대, 산점도)Matplotlib
통계 시각화 (분포, 상관)Seaborn
세밀한 커스터마이징 필요Matplotlib
빠른 탐색적 분석Seaborn

관련 개념

관련 엔티티

소스