yEverything

KDE Plot 본문

Data_analysis/Jupyter_notebook

KDE Plot

yEvery 2024. 4. 22. 22:00
!pip install seaborn==0.9.0

seaborn을 통해서 더 다양한 그래프들을 그릴 수 있다. 위와 같이 작성해서 seaborn을 설치한다.

0.9.0버전으로 seaborn이 성공적으로 설치된 것을 알 수 있다.

import pandas as pd
import seaborn as sns

pandas는 보통 pd로, seaborn은 sns로 간단하게 사용한다.

body_df = pd.read_csv('body.csv', index_col=0)
body_df.head()

위와 같은 데이터를 확인할 수 있다.

body_df['Height']

Heignt column의 데이터들이다.

body_df['Height'].value_counts()

value_counts()는,

키 별 값들이 몇 개 있는지를 count해준다.

body_df['Height'].value_counts().sort_index()

sort_index()는 index를 기준으로 데이터들을 정렬해준다.

body_df['Height'].value_counts().sort_index().plot()

이걸 plot으로 그리면 이렇게 선 그래프가 나오는데,

sns.kdeplot(body_df['Height'])

seaborn의 kdeplot을 사용하면,

확률밀도함수의 모양처럼 대략적인 분포를 알 수 있다. plot을 했을 때의 그래프와 모양이 비슷한 것을 알 수 있는데, 이 대략적임의 정도를 정하기 위해서

sns.kdeplot(body_df['Height'], bw=0.5)

bw를 사용해준다. 이를 잘 조절하면 더 정확한 분포를 알 수 있다.

bw를 설정하지 않았을 때보다 좀 더 정확한 분포를 알 수 있다. 

body_df.plot(kind='hist', y='Height', bins=15)

히스토그램으로 살펴보면,

확실히 bw가 0.5일때가 실제와 더 유사하다는 것을 확실히 알 수 있다.

sns.distplot(body_df['Height'], bins=15)

seaborn의 distplot을 사용하면,

이렇게 히스토그램과, 그에 따른 확률밀도함수 두 개를 겹쳐서 볼 수 있다.

body_df.plot(kind='box', y='Height')

Height에 대한 box plot은 위와 같이 그려진다.

sns.violinplot(y=body_df['Height'])

seaborn의 violinplot은,

 이런 모양의 그래프를 그려준다. 모양이 바이올린 같다고 해서 바이올린 플롯이다.

body_df.plot(kind='scatter', x='Height', y='Weight')

scatter plot으로 키와 몸무게에 대한 상관관계를 알아본다.

그렇게 큰 상관관계는 아닌 것으로 보인다.

sns.kdeplot(body_df['Height'], body_df['Weight'])

seaborn의 kdeplot에 두 개의 데이터에 대해 전달해주면,

가로로는 키에 대해, 세로로는 몸무게에 대한 그래프를 합쳐서 보여주는데,

sns.kdeplot(body_df['Height'])
sns.kdeplot(body_df['Weight'])

각각의 kdeplot을 보면, 비교가 훨씬 쉬운데, 두 개가 같이 그려져 있는 그래프에서 촘촘할 수록 그래프가 가파르다는 것을 확인할 수 있다.

sns.lmplot(data=body_df, x='Height', y='Weight')

seaborn의 lmplot을 사용하려는데, numpy버전, python버전이 조금 달라서 계속해서 오류가 발생했다. numpy버전을 다운그레이드도 해보고 했는데 계속해서 충돌이 일어나서 제대로 되지 않았다.

google colab을 통해서 이를 해결할 수 있었다....!

'Data_analysis > Jupyter_notebook' 카테고리의 다른 글

히스토그램  (0) 2024.04.22
박스 플롯  (0) 2024.04.22
파이 그래프  (0) 2024.04.22
막대 그래프  (0) 2024.04.21
선 그래프  (0) 2024.04.21