
https://www.kaggle.com/learn/data-visualization
시각화를 하다 보면 "변수 간의 관계를 한눈에 보고 싶다"는 생각이 들 때가 많다.
그럴 때 유용한 도구가 바로 Seaborn의 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
| 축 | age | fare | pclass |
|---|---|---|---|
| age | 히스토그램 | age vs fare 산점도 | age vs pclass 산점도 |
| fare | fare vs age | 히스토그램 | fare vs pclass 산점도 |
| pclass | pclass vs age | pclass vs fare | 히스토그램 |
sns.pairplot(df[["age", "fare", "pclass", "survived"]], hue="survived")
이렇게 하면 생존 여부(survived)에 따라 색상이 달라져서
클래스별 분포 차이를 한눈에 볼 수 있다.
처음엔 그냥 여러 그래프를 겹쳐 그리는 건가 싶었는데, 그게 아니다.
plt.plot()을 여러 번 그리면 → 하나의 x축에 여러 시리즈를 덧그리는 느낌pairplot()은 → 각 변수쌍마다 새로운 subplot을 만들어서 관계를 나눠 보여주는 구조다| 비교 항목 | pairplot | heatmap |
|---|---|---|
| 시각화 방식 | 산점도 + 히스토그램 | 색상 기반 상관계수 매트릭스 |
| 기반 데이터 | 실제 점 위치 (raw data) | 요약된 통계값 (corr) |
| 목적 | 관계의 "모양"을 시각적으로 확인 | 관계의 "강도"를 수치로 확인 |
corr = df[["age", "fare", "pclass"]].corr()
sns.heatmap(corr, annot=True, cmap="coolwarm")
둘 다 관계를 보는 데 쓰이지만,
pairplot은 시각적으로, heatmap은 수치적으로 해석하는 도구다.
| 구분 | pairplot() | heatmap() |
|---|---|---|
| 🎨 시각화 형태 | 산점도 + 히스토그램 (실제 데이터 점을 찍음) | 색깔로 수치 (상관계수 등)를 표현 |
| 🔢 기반 데이터 | 실제 데이터의 분포/관계 | 요약된 통계값 (보통 상관계수) |
| 📌 목적 | 변수 간의 분포와 관계를 육안으로 확인 | 변수 간의 상관성(얼마나 비슷하게 움직이는지) 정량적으로 파악 |
| 💡 특징 | 각 변수쌍마다 실제 데이터 점 그려줌 | 각 변수쌍마다 하나의 수치(예: 피어슨 r) 를 색으로 표현 |
| 🧠 이해 용도 | “이 변수랑 저 변수는 어떤 모양으로 관련 있을까?” | “이 변수랑 저 변수는 얼마나 선형적으로 관련 있을까?” |
pairplot()은 수치형 변수들 사이의 관계를 한눈에 보여주는 탐색 도구hue 옵션으로 그룹별 분포를 색으로 구분할 수 있음