일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 클래스
- violinplot
- LOC
- df.t
- stripplot
- STR
- expand=true
- 동적할당
- const
- 참조자
- lmplot
- 열혈c++
- catplot
- 포인터
- class
- value_counts
- Axis
- matplotlib
- 혼공단
- 한빛미디어
- swarmplot
- boxplot
- plot
- c++
- seaborn
- 혼공학습단
- 혼공파
- bins
- histplot
- 구조체
- Today
- Total
yEverything
KDE Plot 본문
!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 |