반응형
Pandas Seaborn을 활용한 고급 시각화
데이터를 효과적으로 시각화하는 것은 데이터 분석 과정에서 중요한 요소입니다. Python의 Seaborn 라이브러리는 고급 통계 그래프를 쉽게 생성할 수 있도록 도와줍니다. 본 포스팅에서는 sns.barplot()
, sns.heatmap()
등의 함수를 활용하여 다양한 고급 시각화 방법을 알아보겠습니다.
1. Seaborn 소개
Seaborn은 Matplotlib을 기반으로 동작하는 데이터 시각화 라이브러리로, 통계적 데이터 표현에 강점을 가지고 있습니다.
Seaborn을 활용하면 데이터의 분포와 관계를 한눈에 파악할 수 있으며, 다양한 스타일과 테마를 제공하여 시각적으로 깔끔한 그래프를 생성할 수 있습니다.
먼저, Seaborn을 설치하고 기본 설정을 해보겠습니다.
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
# Seaborn 스타일 설정
sns.set_theme(style="whitegrid")
2. sns.barplot()
을 활용한 막대 그래프
막대 그래프는 범주형 데이터를 비교하는 데 유용합니다. Seaborn의 sns.barplot()
을 사용하면 평균값을 기준으로 막대 그래프를 쉽게 생성할 수 있습니다.
예제: 타이타닉 데이터셋의 생존자 분석
# 샘플 데이터 불러오기
titanic = sns.load_dataset("titanic")
# 성별에 따른 생존률 비교
plt.figure(figsize=(8, 6))
sns.barplot(x="sex", y="survived", data=titanic, estimator=lambda x: sum(x) / len(x))
plt.title("성별에 따른 생존률")
plt.show()
설명
x="sex"
,y="survived"
로 성별별 생존률을 나타냅니다.estimator=lambda x: sum(x) / len(x)
를 사용하여 평균값을 계산합니다.plt.figure(figsize=(8, 6))
을 활용해 그래프 크기를 조정합니다.
3. sns.heatmap()
을 활용한 히트맵
히트맵은 데이터의 상관관계를 시각적으로 표현하는 데 유용합니다. 특히, 상관행렬을 시각화하는 데 많이 사용됩니다.
예제: 타이타닉 데이터셋의 상관관계 분석
# 숫자형 데이터 간의 상관계수 계산
corr_matrix = titanic.corr(numeric_only=True)
# 히트맵 그리기
plt.figure(figsize=(10, 8))
sns.heatmap(corr_matrix, annot=True, cmap="coolwarm", fmt=".2f", linewidths=0.5)
plt.title("타이타닉 데이터 상관관계 히트맵")
plt.show()
설명
corr_matrix = titanic.corr(numeric_only=True)
를 통해 숫자형 데이터 간의 상관계수를 계산합니다.sns.heatmap()
을 이용하여 히트맵을 그립니다.annot=True
를 설정하면 각 셀에 상관계수 값을 표시할 수 있습니다.cmap="coolwarm"
을 사용해 색상 테마를 적용합니다.fmt=".2f"
로 소수점 두 자리까지 표시합니다.
4. sns.boxplot()
을 활용한 박스플롯
박스플롯은 데이터의 분포와 이상치를 확인하는 데 유용합니다.
예제: 선실 등급에 따른 요금 분포
# 선실 등급별 운임 분포
plt.figure(figsize=(8, 6))
sns.boxplot(x="class", y="fare", data=titanic)
plt.title("선실 등급별 운임 분포")
plt.show()
설명
x="class"
,y="fare"
를 설정하여 선실 등급별 운임 분포를 나타냅니다.- 박스플롯을 사용하면 중앙값, 사분위수, 이상치를 한눈에 파악할 수 있습니다.
5. sns.pairplot()
을 활용한 다변량 분석
pairplot()
함수는 여러 변수 간의 관계를 한눈에 확인할 수 있는 산점도 행렬을 생성합니다.
예제: 타이타닉 데이터셋에서 수치형 변수 간의 관계 시각화
# 일부 수치형 변수 선택
selected_features = ["age", "fare", "pclass", "survived"]
# pairplot 그리기
sns.pairplot(titanic[selected_features], hue="survived", diag_kind="kde")
plt.show()
설명
hue="survived"
를 설정하면 생존 여부에 따라 색상이 다르게 표시됩니다.diag_kind="kde"
를 사용하면 대각선에 밀도 함수 그래프가 출력됩니다.- 여러 변수 간의 관계를 빠르게 탐색할 수 있습니다.
6. 결론
이번 포스팅에서는 Seaborn을 활용한 다양한 고급 시각화 기법을 살펴보았습니다.
sns.barplot()
을 활용하여 평균값을 기준으로 막대 그래프를 그릴 수 있습니다.sns.heatmap()
을 이용하면 데이터 간의 상관관계를 효과적으로 표현할 수 있습니다.sns.boxplot()
을 사용하면 데이터의 분포와 이상치를 파악할 수 있습니다.sns.pairplot()
을 활용하면 여러 변수 간의 관계를 시각적으로 탐색할 수 있습니다.
Seaborn을 활용하면 데이터의 특성을 빠르게 이해하고 효과적으로 분석할 수 있습니다. 다양한 데이터셋을 활용하여 시각화 연습을 해보시길 권장합니다.
반응형
'Python > Pandas' 카테고리의 다른 글
Pandas로 웹 스크래핑한 데이터 분석 (0) | 2025.10.19 |
---|---|
Pandas Kaggle 데이터셋 활용 실습 (0) | 2025.10.18 |
Pandas Matplotlib을 이용한 데이터 시각화 (0) | 2025.10.16 |
Pandas 내장 시각화 기능 (plot()) 활용하기 (0) | 2025.10.15 |
Pandas 데이터 프레임 결합: merge()와 concat() (0) | 2025.10.14 |