데이터분석과 개발

[데이터 시각화] Seaborn Kdeplot 사용해보기 본문

AI(시계열)/데이터시각화

[데이터 시각화] Seaborn Kdeplot 사용해보기

긍정적인마인드 2023. 3. 16. 10:56

* 공부한 것을 정리한 글이므로 틀린 내용이 있을 수 있습니다.

* 더 좋은 방법 또는 틀린부분이 발견될 시 계속 수정하며 업데이트 할 예정입니다.

 

처음보는 데이터의 분포가 궁금할때 시각화를 통해 전체적인 분포를 보고 싶을때가 있습니다.

seaborn의 경우 데이터프레임안에서 카테고리별로 시각화를 시킬 수 있어서 특히 좋은 것 같습니다.

seaborn 모듈의  penguins 데이터 셋을 사용하여 kdeplot을 사용해 보겠습니다.

 

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

df = sns.load_dataset('penguins')
df.head()

 penguins 데이터 셋은 'Adelie', 'Chinstrap', 'Gentoo' 세가지 종의 펭균의 몸무게, 부리길이, 성별 등에 대한 데이터셋입니다.

이 중에 'body_mass_g' 컬럼의 데이터에 대해서만 알아보도록 하겠습니다.

이 컬럼의 데이터 분포가 어떤지 대략적으로 알아보기 위해 kdeplot을 그려 분포를 확인해보겠습니다.

fig, ax = plt.subplots(figsize=(10,5),constrained_layout=True)

# 전체 분포
sns.kdeplot(x='body_mass_g', data=df, fill=True, ec='gray',fc='white',ax=ax) # fc= fill color, ec= edge color
# 종별 분포
sns.kdeplot(x='body_mass_g', data=df, hue='species',fill=True, ax=ax)

 

데이터의 분포를 보았을때 파란색 "Adelie" 종의 몸무게의 최댓값은 5000 보다 조금 넘는것 같습니다.

그렇다면 "Adelie" 종의 몸무게는 6000 이상의 값이 없다는 걸 알게 되었네요.

이렇게 하여 대략적인 분포를 알 수 있고 세부적인 분석을 시작하면 될 것 같습니다.

 

감사합니다.

 

참조:

시각화:

https://jehyunlee.github.io/2022/05/27/Python-DS-102-kdeplot/