본문 바로가기
IT/Python

[Python] 데이터 시각화 Seaborn 라이브러리 (Jupyter Notebook)

by marketinkerbell 2022. 1. 20.
반응형

 

 

데이터 시각화를 손쉽게 도와주는 Seaborn은 matplotlib를 기반으로 하는 Python 데이터 시각화 라이브러리이다.

통계 그래픽을 그리기 위한 고급 인터페이스를 제공한다.

 

 

Seaborn 라이브러리에 대한 정보는 아래 사이트에서 참고!

https://seaborn.pydata.org/

 

 

Seaborn 라이브러리를 이용해서 여러가지 그래프를 만들어보자

 

 

histogram

box plot 

violin plot

strip plot 

swarm plot

scatter plot

kde plot

lm plot

 

 

 

 

[ 예시 1 ]

 

 

body.csv
0.01MB

 

 

 

body.csv 를 다운받아서 Jupyter notebook 루트 폴더에 data 폴더를 만들어 거기에 넣어둔다

 

 

 

 

 

 

 

 

 

쥬피터 노트북에 아래와 같이 코드를 작성한다.

 

import pandas as pd   #pandas 라이브러리 불러옴
import seaborn as sns   #seaborn 라이브러리 불러옴

body_df = pd.read_csv('data/body.csv', index_col = 0)  #csv 불러옴
body_df.head()  #body_df 라는 데이터프레임 위 5행 보여줌

 

 

 

 

 

실행화면 >

 

 

 

 

 

 

 

 

우선 plot 별 코드를 확인해보자

 

body_df.plot(kind ='hist', y='Height')   #kind = 'hist' 히스토그램 그리겠다는 의미


body_df.plot(kind ='box', y='Height')   #kind = 'box' 박스플롯 그리겠다는 의미


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



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



sns.kdeplot(body_df['Height'])   # Height 에 대한 kde plot


sns.kdeplot(body_df['Weight'])  # Weight 에 대한 kde plot


sns.lmplot(data=body_df, x='Height', y='Weight')  # scatter 와 추세선이 합쳐진 lm plot

 

 

 

 

 

plot 별 결과 확인

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[ 예시 2 ]

 

 

 

laptops.csv
0.01MB

 

 

laptops.csv 를 다운받아서 Jupyter notebook data 폴더에 넣는다.

 

 

 

 

쥬피터 노트북에 아래와 같이 코드를 작성한다.

import pandas as pd
import seaborn as sns

laptops_df = pd.read_csv('data/laptops.csv')
laptops_df.head()

 

 

 

 

실행화면 >

 

 

 

 

 

 

 

'os' 칼럼에 unique 한 요소들을 알아낸다 (중복 제거)

laptops_df['os'].unique()

 

 

 

 

실행화면 >

 

 

 

 

 

 

 

 plot 별 코드를 확인해보자

 

sns.catplot(data=laptops_df, x='os', y='price', kind='box')  # box plot

sns.catplot(data=laptops_df, x='os', y='price', kind='violin')  # violin plot


#strip plot  kind='strip'생략 가능
sns.catplot(data=laptops_df, x='processor_brand', y='price', kind='strip')  



# os 관련 strip plot 인데  processor_brand 를 색깔로 구분해줌
sns.catplot(data=laptops_df, x='os', y='price', kind='strip', hue='processor_brand')



# stip plot 에서 점이 뭉쳐있는 부분을 겹치지 않게 펼쳐줌 swarm plot
sns.catplot(data=laptops_df, x='os', y='price', kind='swarm', hue='processor_brand')

 

 

 

 

plot 별 결과 확인

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

댓글