[데이터 분석]Seaborn의 대표적인 데이터 시각화 방법
Seaborn을 활용한 데이터 분석
데이터 분석을 위한 시각화 라이브러리인 seaborn을 최대한 활용하여 데이터 분석을 해보자.
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 펭귄 데이터셋 받아오기
df = sns.load_dataset('penguins')
df.head()
species island bill_length_mm bill_depth_mm flipper_length_mm \ 0 Adelie Torgersen 39.1 18.7 181.0 1 Adelie Torgersen 39.5 17.4 186.0 2 Adelie Torgersen 40.3 18.0 195.0 3 Adelie Torgersen NaN NaN NaN 4 Adelie Torgersen 36.7 19.3 193.0 body_mass_g sex 0 3750.0 Male 1 3800.0 Female 2 3250.0 Female 3 NaN NaN 4 3450.0 Female
데이터 속성 간 관계 분석
데이터 조합 | 요약 통계 | 시각화 |
---|---|---|
Categorical - Categorical | 교차 테이블 | 모자이크 플롯 |
Numeric - Categorical | 카테고리별 통계 값 | 박스 플롯 |
Numeric - Numeric | 상관계수 | 산점도 |
기본적인 데이터 분석 방법으로 각각 분석에 따라 시각화 기법이 다양해진다.
따라서 각 분석에 맞는 시각화 기법을 알아보도록 하자.
heatmap (상관계수 확인)
상관계수 히트맵으로 많이 쓰이며 두 변수 간에 얼마나 직선 상관관계가 있는지 시각화
sns.heatmap(df.corr(), annot=True)
plt.xticks(rotation=45)
kdeplot
하나 혹은 두 개의 변수에 대한 분포를 그린다.
sns.kdeplot(x='bill_length_mm', data=df)
sns.kdeplot(x='bill_length_mm', y='bill_depth_mm', data=df)
pairplot (변수간 산점도 시각화)
변수 간의 상관계수를 산점도로 확인하고 범주형 변수에 따라 분류도 가능
sns.pairplot(df)
sns.pairplot(df, hue='species')
sns.pairplot(df, hue='species', kind='reg', plot_kws={'line_kws': {'color':'red'}})
regplot
regplot으로 두 변수간의 산점도 확인 가능
Regression 결과를 그래프로 보여준다.
sns.regplot(x='flipper_length_mm', y='body_mass_g', data=df)
boxplot (이상치 확인)
최대(maximum), 최소(minimum), mean(평균), 1 사분위수(first quartile), 3 사분위수(third quartile)를 보기 위한 그래프
데이터의 분포를 시각화 하여 이상값이 있는지 확인 가능하며 범주형 변수에 따라 분류 가능
점으로 표시된 것이 이상값!
sns.boxplot(x='bill_length_mm', data=df)
sns.boxplot(x='bill_length_mm', y='island', data=df)
<matplotlib.axes._subplots.AxesSubplot at 0x7f6526de5450>
<Figure size 432x288 with 1 Axes>
sns.boxplot(x='bill_length_mm', y='island', hue='species', data=df)
sns.violinplot(x='bill_length_mm', y='island', hue='species', data=df)
Facet Grid
특정 조건에 따라 그래프를 각각 확인가능
sns.FacetGrid(df, col = 'species', row = 'sex').map(sns.distplot, 'bill_length_mm')
범주형 특성 분석
barplot
이변량(bivariate) 분석을 위한 plot
x축에는 범주형 변수, y축에는 연속형 변수를 넣는다.
sns.barplot(x = 'sex', y = 'bill_length_mm', data=df)
countplot
범주형 변수의 발생 횟수를 셈
sns.countplot(x = 'sex', data=df)
댓글남기기