설명
Python의 데이터 시각화 라이브러리로, Matplotlib을 기반으로 하여 더 고급스럽고 세련된 시각화 기능을 제공
Matplotlib의 기반 위에 구축
Matplotlib 시각화 차트 기리기를 Seaborn이 쉽게 그릴 수 있도록 도와줌
plot 종류
•
Relational plots
두 변수의 관계를 볼 때
•
Distribution plots
변수의 데이터 분포 볼 때
•
Categorical plots
범주형 변수의 집계나 볌주형 변수와 수치형 변수간의 관계를 볼 때
설치
> pip install seaborn
Python
복사
colab 한글 깨짐 방지
•
실행후에 런타임 다시 시작할 것
import pandas as pd
import numpy as np
Python
복사
!apt -qq -y install fonts-nanum > /dev/null
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
fontpath = '/usr/share/fonts/truetype/nanum/NanumBarunGothic.ttf'
font_name = fm.FontProperties(fname=fontpath).get_name()
fm._rebuild()
%config InlineBackend.figure_format = 'retina'
plt.rc('font', family=font_name)
plt.rcParams['axes.unicode_minus'] = False
Python
복사
기능
기본 플롯 (Basic Plots)
•
산점도 (Scatter Plot): 두 변수 간의 관계를 시각화
import seaborn as sns
import matplotlib.pyplot as plt
sns.scatterplot(x='x_variable', y='y_variable', data=df)
plt.show()
Python
복사
•
선 그래프 (Line Plot): 시간에 따른 변화를 시각화
sns.lineplot(x='x_variable', y='y_variable', data=df)
plt.show()
Python
복사
•
히스토그램 (Histogram): 데이터의 분포를 시각화
sns.histplot(data=df, x='variable', bins=30)
plt.show()
Python
복사
다양한 플롯 (Advanced Plots)
•
상자 그림 (Box Plot): 데이터의 분포와 이상치를 시각화
sns.boxplot(x='category', y='value', data=df)
plt.show()
Python
복사
•
히트맵 (Heatmap): 상관관계 행렬이나 다른 2차원 데이터를 시각화
sns.heatmap(data=corr_matrix, annot=True, cmap='coolwarm')
plt.show()
Python
복사
•
페어플롯 (Pair Plot): 데이터의 여러 변수 간 관계를 시각화
sns.pairplot(df)
plt.show()
Python
복사
통계적 플롯 (Statistical Plots)
•
회귀 플롯 (Regression Plot): 두 변수 간의 선형 회귀선을 시각화
sns.regplot(x='x_variable', y='y_variable', data=df)
plt.show()
Python
복사
•
로지스틱 회귀 플롯 (Logistic Regression Plot): 이진 분류 문제의 결과를 시각화
sns.lmplot(x='x_variable', y='y_variable', data=df, logistic=True)
plt.show()
Python
복사
범주형 플롯 (Categorical Plots)
•
카운트 플롯 (Count Plot): 범주형 변수의 각 범주에 대한 빈도수를 시각화
sns.countplot(x='category', data=df)
plt.show()
Python
복사
•
바 플롯 (Bar Plot): 범주형 변수의 평균값을 시각화합니다.
sns.barplot(x='category', y='value', data=df)
plt.show()
Python
복사
•
박스 플롯 (Box Plot): 범주형 변수의 값 분포와 이상치를 시각화
sns.boxplot(x='category', y='value', data=df)
plt.show()
Python
복사
테마와 스타일 (Themes and Styles)
Seaborn은 다양한 시각적 스타일과 테마를 제공하여 플롯의 외관을 쉽게 변경할 수 있다.
•
스타일 설정:
sns.set_style("whitegrid")
Python
복사
•
팔레트 설정:
sns.set_palette("husl")
Python
복사
팁 Dataset의 seaborn plots
# 데이터 로드
tips = sns.load_dataset("tips")
Python
복사
Relational plots
•
relplot(kind="scatter") # default
•
relplot(kind="line")
scatterplot
•
전체 팁
sns.relplot(data=tips, x="total_bill", y="tip", kind="scatter")
Python
복사
•
흡연자와 비흡연자 분리
sns.relplot(data=tips, x="total_bill", y="tip", hue="smoker")
Python
복사
•
점 style 변경
sns.relplot(
data=tips,
x="total_bill", y="tip", hue="smoker", style="smoker"
)
Python
복사
•
점 style 그룹 지정
sns.relplot(
data=tips,
x="total_bill", y="tip", hue="smoker", style="time"
)
Python
복사
•
숫자형 데이터일 때
◦
색상의 농도 표현
sns.relplot(
data=tips, x="total_bill", y="tip", hue="size",
)
Python
복사
◦
점 크기 표현
◦
혼합
sns.relplot(
data=tips, x="total_bill", y="tip", hue="size",
size="size", sizes=(15, 200)
)
Python
복사
lineplot
•
일부 데이터 세트의 경우 한 변수의 변화를 시간의 함수 또는 유사한 연속 변수로 이해하고자 할 수 있다.
•
이 상황에서 좋은 선택은 선 그림을 그리는 것이다.
기본
•
기본 그래프
sns.relplot(data=fmri, x="timepoint", y="signal", kind="line")
Python
복사
기본 동작 해제
•
seaborn의 기본 동작은 x 평균과 평균 주위의 95% 신뢰 구간을 플로팅하여 각 값에서 여러 측정값을 집계
•
집계 작업을 끄려면 estimator=None으로 설정
sns.relplot(
data=fmri, kind="line",
x="timepoint", y="signal",
estimator=None
)
Python
복사
그룹화
•
hue로 그룹화
sns.relplot(
data=fmri, kind="line",
x="timepoint", y="signal", hue="event",
)
Python
복사
hue를 이용하여 하위 집합 분석
•
카테고리 데이터를 hue(색상으로 다르게 표현)를 이용하여 하위 집합으로 분석
sns.relplot(
data=fmri, kind="line",
x="timepoint", y="signal",
hue="region", style="event",
)
Python
복사
각 점 포인트
•
각 지정 점을 표시