Seaborn Pairplot : 변수 간 관계 시각화

Sia Lim·2025년 5월 19일
post-thumbnail

https://www.kaggle.com/learn/data-visualization

시각화를 하다 보면 "변수 간의 관계를 한눈에 보고 싶다"는 생각이 들 때가 많다.
그럴 때 유용한 도구가 바로 Seaborn의 pairplot() 함수다.


👀 pairplot이 뭔데?

pairplot()데이터프레임에 있는 수치형 변수들 사이의 관계를 전부 산점도로 보여주는 함수다.
각 변수쌍에 대해 산점도를 그리고, 대각선에는 각 변수의 분포도(히스토그램 또는 KDE)를 표시해준다.

import seaborn as sns
df = sns.load_dataset("titanic")

sns.pairplot(df[["age", "fare", "pclass", "survived"]])


이미지 출처 : https://seaborn.pydata.org/generated/seaborn.pairplot.html

📊 결과 구성

agefarepclass
age히스토그램age vs fare 산점도age vs pclass 산점도
farefare vs age히스토그램fare vs pclass 산점도
pclasspclass vs agepclass vs fare히스토그램

🎨 hue 옵션으로 그룹을 색깔로 구분할 수도 있다

sns.pairplot(df[["age", "fare", "pclass", "survived"]], hue="survived")

이렇게 하면 생존 여부(survived)에 따라 색상이 달라져서
클래스별 분포 차이를 한눈에 볼 수 있다.


🤔 pairplot은 단순히 겹쳐 그리는 것과 어떻게 다른가?

처음엔 그냥 여러 그래프를 겹쳐 그리는 건가 싶었는데, 그게 아니다.

  • plt.plot()을 여러 번 그리면 → 하나의 x축에 여러 시리즈를 덧그리는 느낌
  • pairplot()은 → 각 변수쌍마다 새로운 subplot을 만들어서 관계를 나눠 보여주는 구조다

🔥 여러 변수를 비교한다는 점에서 heatmap과는 어떻게 다른가?

비교 항목pairplotheatmap
시각화 방식산점도 + 히스토그램색상 기반 상관계수 매트릭스
기반 데이터실제 점 위치 (raw data)요약된 통계값 (corr)
목적관계의 "모양"을 시각적으로 확인관계의 "강도"를 수치로 확인
corr = df[["age", "fare", "pclass"]].corr()
sns.heatmap(corr, annot=True, cmap="coolwarm")

둘 다 관계를 보는 데 쓰이지만,
pairplot은 시각적으로, heatmap은 수치적으로 해석하는 도구다.

구분pairplot()heatmap()
🎨 시각화 형태산점도 + 히스토그램 (실제 데이터 점을 찍음)색깔로 수치 (상관계수 등)를 표현
🔢 기반 데이터실제 데이터의 분포/관계요약된 통계값 (보통 상관계수)
📌 목적변수 간의 분포와 관계를 육안으로 확인변수 간의 상관성(얼마나 비슷하게 움직이는지) 정량적으로 파악
💡 특징각 변수쌍마다 실제 데이터 점 그려줌각 변수쌍마다 하나의 수치(예: 피어슨 r) 를 색으로 표현
🧠 이해 용도“이 변수랑 저 변수는 어떤 모양으로 관련 있을까?”“이 변수랑 저 변수는 얼마나 선형적으로 관련 있을까?”

✅ 정리

  • pairplot()은 수치형 변수들 사이의 관계를 한눈에 보여주는 탐색 도구
  • 대각선: 변수의 분포
  • 나머지 셀: 변수쌍 간 산점도
  • hue 옵션으로 그룹별 분포를 색으로 구분할 수 있음
  • EDA(탐색적 데이터 분석)에 아주 자주 쓰이는 함수!

0개의 댓글