반응형

📌 개요
데이터 시각화는 단순히 그래프를 그리는 것이 아니라,
데이터의 차원과 변수 유형에 맞는 차트를 선택하는 과정입니다.
이번 글에서는 다음을 정리합니다.
- 주요 차트 유형과 변수 차원 이해
- 각 차트가 적합한 데이터 구조
- Seaborn의 Axes-level / Figure-level 구조 차이
- Titanic 데이터로 히스토그램 실습
1️⃣ 차트 유형과 데이터 차원
✔ 1. 히스토그램 (Histogram)
연속형 값의 도수 분포를 시각화합니다.
- X축: 연속형 값의 구간(bin)
- Y축: 해당 구간의 빈도수
📌 예시
나이, 요금, 점수, 가격 등 분포 확인
👉 데이터의 분포 모양, 왜도, 이상치 여부를 파악할 수 있습니다.
✔ 2. 바이올린 플롯 (Violin Plot)
특정 범주별 연속형 값의 분포를 시각화합니다.
- 분포 + 밀도 + 중앙값 정보를 동시에 표현
- 박스플롯보다 분포 형태를 더 직관적으로 보여줍니다.
📌 예시
성별별 나이 분포
클래스별 시험 점수 분포
👉 범주형 X + 연속형 Y 구조에서 매우 유용합니다.
✔ 3. 바플롯 (Bar Plot)
이산형 X와 연속형 Y의 관계를 보여줍니다.
- X축: 범주형 변수
- Y축: 평균값(기본), 중앙값 등 집계값
📌 예시
성별 평균 나이
학년별 평균 점수
👉 Seaborn의 barplot은 기본적으로 평균값을 계산하여 표시합니다.
✔ 4. 스캐터플롯 (Scatter Plot)
연속형 변수 2개 사이의 관계를 시각화합니다.
- X축: 연속형
- Y축: 연속형
📌 예시
나이 vs 요금
공부시간 vs 점수
👉 변수 간 상관관계, 패턴, 이상치를 확인하기 좋습니다.
✔ 5. 라인플롯 (Line Plot)
시계열 데이터에 가장 적합합니다.
- X축: 시간(년/월/일)
- Y축: 연속형 값
📌 예시
월별 매출
연도별 인구 변화
👉 추세(trend)를 파악하는 데 매우 강력합니다.
2️⃣ Seaborn이란?
Seaborn은 Matplotlib 기반의 High-Level 시각화 라이브러리입니다.
특징
- Matplotlib보다 코드가 간결합니다.
- Default 설정만으로도 시각적으로 수려합니다.
- Pandas DataFrame과 쉽게 연동됩니다.
- 통계 기반 시각화에 특화되어 있습니다.
3️⃣ Seaborn의 두 가지 구조
✔ Axes-level 함수
- 기존 Matplotlib처럼 개별 Axes에 직접 그림
- 예: sns.histplot(), sns.scatterplot()
👉 Axes 객체 중심 구조
✔ Figure-level 함수
- 내부적으로 FacetGrid를 사용
- 여러 개 subplot 자동 생성 가능
- 예: sns.displot(), sns.catplot()
👉 Figure 단위로 관리
4️⃣ Titanic 데이터로 Histogram 실습
✔ 데이터 로드
import pandas as pd
titanic_df = pd.read_csv('./titanic/titanic_train.csv')
titanic_df.head(5)

✔ Figure-level 히스토그램 (displot)
import seaborn as sns
sns.displot(titanic_df['Age'],bins=10, rug=True, kde=True)

옵션 설명
- bins=10 → 구간 개수
- rug=True → 데이터 위치를 선으로 표시
- kde=True → 밀도 곡선 추가
✔ 또 다른 방식
sns.displot(x='Age', data=titanic_df)

👉 Pandas 컬럼명 기반 접근
✔ Axes-level 히스토그램
plt.figure(figsize=(12,6))
sns.histplot(x='Age',data=titanic_df, kde=True,bins=30)

특징
- plt.figure()로 Figure 크기 직접 제어
- sns.histplot()은 Axes-level 함수
✔ Figure-level 상세 설정
import seaborn as sns
sns.displot(titanic_df['Age'],
kde=True,
rug=True, #rug플롯
height=4,
aspect=2)

옵션 설명
- height → 높이
- aspect → 가로/세로 비율
📌 Axes-level vs Figure-level 비교
| 구분 | Axes-level | Figure-level |
| 함수 예 | histplot | displot |
| 관리 단위 | Axes | Figure |
| subplot 확장성 | 낮음 | 높음 |
| 내부 구조 | Matplotlib | FacetGrid |
데이터 시각화에서 중요한 것은
- 변수 유형 파악 (연속형/이산형)
- 차원 구조 이해 (1차원/2차원/범주+연속)
- 적절한 차트 선택
- Axes-level과 Figure-level 구분
Seaborn은 통계적 시각화에 최적화된 라이브러리이며,
Matplotlib을 기반으로 하지만 훨씬 직관적이고 생산성이 높습니다.
반응형
'Programming' 카테고리의 다른 글
| Seaborn 분포 시각화 완전 정리 2 | Violin/Box/Scatter/Heatmap + Subplots 실전 (0) | 2026.02.15 |
|---|---|
| Seaborn countplot & barplot 완전 정리 1 | 범주형 데이터 시각화 핵심 가이드 (0) | 2026.02.15 |
| Matplotlib 여러 Plot 한 Axes에 그리기 & Subplots 완전 정리 (0) | 2026.02.15 |
| Python Visualization Library 완전 정리 : Matplotlib (0) | 2026.02.15 |
| 데이터 시각화 핵심 개념 한 번에 정리 (0) | 2026.02.15 |