SEABORN
: 데이터 시각화 라이브러리
0. seaborn 라이브러리 임포트
import seaborn as sns
1. 1개 데이터
sns.countplot(data=df, x=’칼럼명’)
sns.countplot(df[’칼럼명’])
2. 2개의 수치형 데이터
sns.그래프종류(data=df, x='x축칼럼', y='y축칼럼', hue='색상구별기준칼럼')
sns.relplot(data=df, x='x축컬럼', y='y축컬럼', hue='구분컬럼', kind='그래프종류')
kind=‘scatter'(기본값, 산점도),|'line'(선 그래프)
sns.jointplot(data=df, x='x축컬럼', y='y축컬럼', kind='그래프형태')
kind='scatter'(기본값, point), |'reg'(point+regression), |'kde'(누적분포차트 like 지도),| ‘hex’
- ‘kde’ 는 사이가 좁을수록 데이터가 많은 것
- ‘hex’ 는 색깔이 진할수록 데이터가 많은 것
- 2개의 수치형 데이터를 사용한 그래프 예시
import seaborn as sns
t = sns.load_dataset('tips')
sns.relplot(data=t, x='tip', y='total_bill')

sns.relplot(data=t, x='tip', y='total_bill', kind='line')

sns.relplot(data=t, x='tip', y='total_bill', hue='sex')

sns.jointplot(data=t, x='tip', y='total_bill')

sns.jointplot(data=t, x='tip', y='total_bill', kind='kde')

sns.jointplot(data=t, x='tip', y='total_bill', kind='reg')

sns.jointplot(data=t, x='tip', y='total_bill', kind='hex')

3. 모든 수치형 데이터 (2개씩)
sns.pairplot(data=df, hue=’색상구별기준칼럼’)
4. 수치형 데이터와 범주형 데이터
sns.boxplot(data=df, x='범주형컬럼' , y='수치형컬럼' , hue='구분컬럼')
sns.swarmplot(data=df, x='범주형컬럼' ,y='수치형컬럼' ,hue='구분컬럼' ,dodge=False)
dodge=False(기본값), |True(hue에 지정한 칼럼 기준으로 나눠서 표시)
sns.barplot(data=df, x='범주형컬럼', y='수치형컬럼 ,hue='구분컬럼' ,palette='막대색상')
palette=‘firebrick’|‘gray’ 등 색깔 지정
- 수치형과 범주형 데이터 그래프 예시
sns.boxplot(data=t, x='day', y='tip')
sns.boxplot(data=t, x='day', y='tip', hue='smoker')

sns.swarmplot(data=t, x='day', y='tip')
sns.swarmplot(data=t, x='day', y='tip', hue='smoker')
sns.swarmplot(data=t, x='day', y='tip', hue='smoker', dodge=True)

sns.barplot(data=t, x='size', y='tip')
sns.barplot(data=t, x='size', y='tip', hue='sex')

5. 수치형 데이터와 2개의 범주형 데이터
sns.heatmap(data=df, annot=False, fmt=’수치형 표현형식’, cmap=’색상')
annot=False(기본값, 수치표현없이 그림만),|True(수치도 표현)
fmt= ‘.0f’(정수로 표현), ‘.2f’(소수점 2자리까지 표현)
cmap 추천색상 : ‘Reds’, ‘Blues’, ‘vlag’, ‘Pastel1’, ‘RdBu_r’ 등
- 사용 예시
tt =t.pivot_table(index='day',columns='size', values='tip', aggfunc='mean')
sns.heatmap(data=tt, annot=True, fmt='.2f', cmap='Blues')

6. 한번에 여러 그래프 그리기
import matplotlib.pyplot as plt
f, ax = plt.subplots(a, b, figsize=(n, m))
plt.xticks( rotation = 90 )
f : plt.subplots를 실행하고 그래프를 채운 후 결과 보관
ax : 그래프 그릴 때, sns.그래프종류(data=df, x=,y=, ax=[1,2])
→ 1행2열 자리에 그래프 그리기
ax[n,m].axvline(수직선 위치 x값, ls = ‘—’ ) : n행 m열 그래프에 수직선 그리기
한글 데이터 표시
import matplotlib
import matplotlib.pyplot as plt
from matplotlib import font_manager, rc
import platform
import seaborn as sns
if platform.system() == 'Windows':
font_name = font_manager.FontProperties(fname="c:/Windows/Fonts/malgun.ttf").get_name()
rc('font', family = font_name)
else:
rc('font', family = 'AppleGothic')
matplotlib.rcParams['axes.unicode_minus'] = False