데이터 시각화는 데이터 분석에서 중요한 단계입니다. Python의 Seaborn 라이브러리는 통계적 데이터 시각화를 쉽게 할 수 있도록 도와주는 강력한 도구입니다.

이 글에서는 Seaborn의 기본 사용법과 함께 추천할 만한 다양한 그래프 유형을 소개하겠습니다.

1. Seaborn 설치

Seaborn이 설치되어 있지 않다면, 다음 명령어로 설치할 수 있습니다:

pip install seaborn

2. 기본 사용법

Seaborn을 사용하기 위해서는 먼저 라이브러리를 임포트하고, 데이터셋을 준비해야 합니다. 예를 들어, tips라는 내장 데이터셋을 사용할 수 있습니다.

import seaborn as sns
import matplotlib.pyplot as plt

# 내장 데이터셋 로드
tips = sns.load_dataset("tips")

# 데이터셋 확인
print(tips.head())

결과값

   total_bill   tip     sex smoker  day    time  size
0       16.99  1.01  Female     No  Sun  Dinner     2
1       10.34  1.66    Male     No  Sun  Dinner     3
2       21.01  3.50    Male     No  Sun  Dinner     3
3       23.68  3.31    Male     No  Sun  Dinner     2
4       24.59  3.61  Female     No  Sun  Dinner     4

3. 기본 플롯

3.1 산점도 (Scatter Plot)

산점도는 두 변수 간의 관계를 시각화하는 데 유용합니다.

# 산점도 그리기
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="day")
plt.title("Total Bill vs Tip")
plt.show()

scatterplot

3.2 상자 그림 (Box Plot)

상자 그림은 데이터의 분포와 이상치를 시각화합니다.

# 상자 그림 그리기
sns.boxplot(data=tips, x="day", y="total_bill", hue="sex")
plt.title("Total Bill by Day and Sex")
plt.show()

scatterplot

3.3 히스토그램 (Histogram)

히스토그램은 데이터의 분포를 시각화합니다.

# 히스토그램 그리기
sns.histplot(data=tips, x="total_bill", bins=30, kde=True)
plt.title("Distribution of Total Bill")
plt.show()

scatterplot

3.4 Pairplot

pairplot은 데이터셋의 모든 변수 쌍에 대해 산점도를 그려주고, 대각선에는 각 변수의 분포를 보여줍니다.

# Pairplot 그리기
sns.pairplot(tips, hue="sex")
plt.title("Pairplot of Tips Dataset")
plt.show()

scatterplot

4. 추가 추천 그래프

Seaborn은 다양한 유형의 그래프를 지원하여 데이터 시각화를 풍부하게 할 수 있습니다. 아래는 추가로 추천할 만한 그래프 유형입니다.

4.1 히트맵 (Heatmap)

히트맵은 데이터의 상관관계를 시각화하는 데 유용합니다.

# 상관 행렬 계산
correlation_matrix = tips.corr()

# 히트맵 그리기
sns.heatmap(correlation_matrix, annot=True, cmap="coolwarm")
plt.title("Correlation Heatmap")
plt.show()

scatterplot

4.2 바 플롯 (Bar Plot)

바 플롯은 범주형 데이터의 평균 또는 합계를 시각화하는 데 유용합니다.

# 바 플롯 그리기
sns.barplot(data=tips, x="day", y="total_bill", hue="sex")
plt.title("Average Total Bill by Day and Sex")
plt.show()

scatterplot

4.3 선 그래프 (Line Plot)

선 그래프는 시간에 따른 변화를 시각화하는 데 적합합니다.

# 예시 데이터 생성
import pandas as pd

# 날짜 생성
dates = pd.date_range("2023-01-01", periods=10)
values = [1, 3, 2, 5, 4, 6, 7, 8, 9, 10]
data = pd.DataFrame({"Date": dates, "Values": values})

# 선 그래프 그리기
sns.lineplot(data=data, x="Date", y="Values")
plt.title("Line Plot Example")
plt.xticks(rotation=45)
plt.show()

scatterplot

4.4 카운트 플롯 (Count Plot)

카운트 플롯은 각 범주형 변수의 개수를 시각화합니다.

# 카운트 플롯 그리기
sns.countplot(data=tips, x="day", hue="sex")
plt.title("Count of Tips by Day and Sex")
plt.show()

scatterplot

4.5 조인트 플롯 (Joint Plot)

조인트 플롯은 두 변수 간의 관계를 시각화하고, 각 변수의 분포를 함께 보여줍니다.

# 조인트 플롯 그리기
sns.jointplot(data=tips, x="total_bill", y="tip", kind="scatter", hue="sex")
plt.title("Joint Plot of Total Bill and Tip")
plt.show()

scatterplot

4.6 바이올린 플롯 (Violin Plot)

바이올린 플롯은 데이터의 분포를 시각화하며, 상자 그림과 밀도 곡선을 결합한 형태입니다.

# 바이올린 플롯 그리기
sns.violinplot(data=tips, x="day", y="total_bill", hue="sex", split=True)
plt.title("Violin Plot of Total Bill by Day and Sex")
plt.show()

scatterplot

결론

Seaborn은 데이터 시각화를 간편하게 만들어주는 강력한 도구입니다. 다양한 플롯과 스타일을 통해 데이터를 효과적으로 시각화할 수 있습니다.