Python/Pandas

Pandas Seaborn을 활용한 고급 시각화

임베디드 친구 2025. 10. 17. 21:31
반응형

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을 활용하면 데이터의 특성을 빠르게 이해하고 효과적으로 분석할 수 있습니다. 다양한 데이터셋을 활용하여 시각화 연습을 해보시길 권장합니다.

반응형