
Seaborn은 Matplotlib을 기반으로 한 고급 시각화 라이브러리로, 통계적 그래프를 쉽게 생성할 수 있도록 설계됨. 기본적으로 데이터프레임과 잘 연동되며, 다양한 스타일과 색상 테마를 제공함.
Seaborn을 사용하기 위해 먼저 라이브러리를 불러오고, 기본 스타일을 설정할 수 있음.
import seaborn as sns
import matplotlib.pyplot as plt
# Seaborn 스타일 설정
sns.set_style("whitegrid") # 스타일 변경 가능: "darkgrid", "white", "ticks" 등
# 샘플 데이터 로드
df = sns.load_dataset("tips") # Seaborn 제공 예제 데이터셋
bins 옵션을 사용하여 막대의 개수를 조절할 수 있으며, kde=True를 설정하면 밀도 그래프도 함께 표시됨.import numpy as np
np.random.seed(42)
data = np.random.randn(1000) # 정규 분포를 따르는 랜덤 데이터 생성
# 히스토그램 & KDE
sns.histplot(data, bins=30, kde=True, color='blue')
plt.title("Histogram with KDE")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()
sns.kdeplot(data, shade=True, color='red')
plt.title("Kernel Density Estimation (KDE) Plot")
plt.xlabel("Value")
plt.ylabel("Density")
plt.show()
scatterplot()은 산점도를 그리며, lineplot()은 선 그래프를 그림.# 산점도를 활용하여 total_bill과 tip의 관계를 시각화
sns.scatterplot(data=df, x="total_bill", y="tip", hue="sex", style="sex")
plt.title("Scatter Plot of Total Bill vs. Tip")
plt.xlabel("Total Bill ($)")
plt.ylabel("Tip ($)")
plt.show()
# total_bill의 평균값을 선 그래프로 표현
sns.lineplot(data=df, x="size", y="total_bill", ci=None)
plt.title("Line Plot of Total Bill by Party Size")
plt.xlabel("Party Size")
plt.ylabel("Total Bill ($)")
plt.show()
barplot(), boxplot(), violinplot() 등 범주형 변수에 대한 다양한 시각화 제공sns.boxplot(data=df, x="day", y="total_bill", hue="sex")
plt.title("Box Plot of Total Bill by Day")
plt.xlabel("Day of the Week")
plt.ylabel("Total Bill ($)")
plt.legend(title="Sex")
plt.show()
sns.violinplot(data=df, x="day", y="total_bill", hue="sex", split=True)
plt.title("Violin Plot of Total Bill by Day")
plt.xlabel("Day of the Week")
plt.ylabel("Total Bill ($)")
plt.legend(title="Sex")
plt.show()
heatmap()을 이용하여 데이터의 상관관계 또는 특정 행렬 데이터를 시각화 가능annot=True 옵션을 사용하면 값이 표시됨.# 상관행렬 계산
corr = df.corr()
# 히트맵 생성
sns.heatmap(corr, annot=True, cmap="coolwarm", fmt=".2f")
plt.title("Heatmap of Correlation Matrix")
plt.show()
pairplot()과 FacetGrid() 제공sns.pairplot(df, hue="sex", diag_kind="kde")
plt.show()
g = sns.FacetGrid(df, col="sex", row="time", margin_titles=True)
g.map_dataframe(sns.scatterplot, x="total_bill", y="tip")
g.set_axis_labels("Total Bill ($)", "Tip ($)")
plt.show()
Seaborn은 다양한 스타일과 색상 테마를 제공하여 시각화를 더욱 미적으로 만들 수 있음.
sns.set_style("darkgrid") # 스타일 변경 가능: "whitegrid", "dark", "white", "ticks"
sns.set_palette("pastel") # 색상 테마 설정 가능: "deep", "muted", "bright", "pastel", "dark"
그래프의 제목과 범례를 추가하여 가독성을 높일 수 있음.
ax = sns.scatterplot(data=df, x="total_bill", y="tip", hue="sex", style="sex")
ax.set_title("Total Bill vs. Tip by Gender")
ax.legend(title="Gender")
plt.xlabel("Total Bill ($)")
plt.ylabel("Tip ($)")
plt.show()