KT에이블스쿨 7기

[KT AIVLE School 7기] 데이터 분석 및 시각화(2)

CodeForWelfare 2025. 4. 28. 08:00

데이터 처리, 시각화는 교육은 끝이에요.

데이터 처리 부터 시각화까지 제가 올린게 기본이고 추가적으로 더 공부하셔도 좋을 것 같습니다!


1. Matplotlib이란?

Matplotlib은 파이썬에서 가장 널리 사용되는 데이터 시각화 라이브러리다.

  • 수치 데이터, 범주형 데이터, 시간에 따른 변화를 직관적으로 시각화할 수 있다.
  • 다양한 종류의 그래프(선 그래프, 막대 그래프, 산점도 등)를 손쉽게 만들 수 있다.
  • 기본적인 기능은 matplotlib.pyplot 모듈을 통해 빠르게 사용할 수 있다.
import matplotlib.pyplot as plt

Matplotlib은 커스터마이징이 매우 자유롭기 때문에, 처음에는 약간 복잡하게 느껴질 수 있지만, 기본적인 사용법을 익히고 나면 다양한 스타일로 자유롭게 그래프를 그릴 수 있다.

데이터를 효과적으로 전달하려면 수치나 표만 보여주는 것보다, 한눈에 이해할 수 있는 그래프를 만드는 것이 훨씬 강력하다.


2. Seaborn 라이브러리 - 고급 시각화 따라잡기

Seaborn이란?

Seaborn은 Matplotlib을 기반으로 만들어진 고급 시각화 라이브러리다.

  • 기본 설정만으로도 깔끔하고 세련된 그래프를 쉽게 그릴 수 있다.
  • 데이터셋의 다양한 패턴과 분포를 한눈에 확인할 수 있도록 도와준다.
import seaborn as sns
import matplotlib.pyplot as plt

Seaborn을 사용할 때는 Matplotlib과 함께 불러오는 것이 일반적이다.


3. Seaborn 기본 사용법

3-1. 히스토그램 그리기 (Histplot)

sns.histplot(data=tips, x='total_bill', bins=10)
plt.title('Total Bill 히스토그램')
plt.show()

✔️ 결과

총지출(total_bill)의 분포를 막대그래프로 시각화한 것이다.

3-2. 밀도 그래프 그리기 (KDE Plot)

sns.kdeplot(data=tips, x='total_bill')
plt.title('Total Bill 밀도곡선')
plt.show()

✔️ 결과

부드러운 곡선을 통해 데이터의 분포를 부드럽게 확인할 수 있다.

3-3. 박스플롯 그리기 (Boxplot)

sns.boxplot(data=tips, x='day', y='total_bill')
plt.title('요일별 총 지출 박스플롯')
plt.show()

✔️ 결과

각 요일별 지출 금액의 중앙값, 사분위수, 이상치를 한눈에 볼 수 있다.

3-4. 산점도+히스토그램 (Jointplot)

sns.jointplot(data=tips, x='total_bill', y='tip', kind='scatter')
plt.suptitle('총지출과 팁 금액 관계', y=1.02)
plt.show()

✔️ 결과

두 변수(total_bill과 tip) 사이의 관계를 산점도와 주변 히스토그램으로 동시에 보여준다.

3-5. 변수쌍 관계 전체 보기 (Pairplot)

sns.pairplot(data=tips, vars=['total_bill', 'tip', 'size'], hue='sex', diag_kind='hist')
plt.suptitle('성별에 따른 변수 관계', y=1.02)
plt.show()

✔️ 결과

여러 변수들 간의 관계를 한눈에 비교할 수 있으며, 색깔로 성별을 구분한다.

3-6. 범주형 데이터 빈도 (Countplot)

sns.countplot(data=tips, x='day')
plt.title('요일별 방문 빈도')
plt.show()

✔️ 결과

각 요일별 방문 횟수를 막대그래프로 나타낸다.

3-7. 상관관계 히트맵 (Heatmap)

corr = tips.corr()
sns.heatmap(corr, annot=True, cmap='coolwarm', fmt='.2f')
plt.title('변수 간 상관관계 히트맵')
plt.show()

✔️ 결과

변수 간의 상관관계를 색깔로 시각화하여 빠르게 파악할 수 있다.


Seaborn 정리

히스토그램 histplot()
밀도 그래프 kdeplot()
박스플롯 boxplot()
산점도+히스토그램 jointplot()
변수 관계 전체 pairplot()
범주형 데이터 빈도 countplot()
상관관계 히트맵 heatmap()

Seaborn은 특히 데이터 분석 과정 중 EDA(탐색적 데이터 분석)에 강력한 힘을 발휘한다. 한 번만 그려도 데이터를 깊이 있게 이해할 수 있다.


마무리

수고 많으셨습니다!  Matplotlib보다 직관적이거나 쉬운 부분도 있습니다. 적절하게 섞어 쓰시면 편하실 것 같습니다!

(질문은 댓글로 자유롭게 남겨주세요!)