본문 바로가기
데이터 분석

seaborn 패키지

by 핸들이없는8톤트럭 2022. 8. 15.
반응형

seaborn 패키지

matplotlib 기반의 데이터 시각화 라이브러리입니다. 데이터 통게를 시각화 하는 라이브러리이며, matplotlib을 손쉽게 사용할 수 있도록 돕는 wrapper 라이브러리입니다. 기능적인 부분을 넘어서, 아름다운 시각화까지 가능합니다.

 

 

Histplot

히스토그램을 그리는 함수입니다.

import seaborn as sns
df= sns.load_dataset('penguins') #seaborn 에서 제공하는 dataset
df.head()
sns.histplot(df['bill_length_mm'])
sns.histplot(df['bill_length_mm'],bins=25) #bins = 바의 갯수
sns.histplot(df,x='bill_length_mm',bins=25,kde=True) # Kernel Density Estimation(KDE) --> 데이터 포인트를 가우시안화
sns.histplot(df,y='bill_length_mm',bins=25,kde=True)

 

Jointplot

import seaborn as sns
df= sns.load_dataset('penguins') #seaborn 에서 제공하는 dataset
df.head()

sns.jointplot(data=df,x='bill_length_mm',y='bill_depth_mm')
sns.jointplot(data=df,x='bill_length_mm',y='bill_depth_mm',alpha=0.5) # 겹치는 것은 진하게 보임
sns.jointplot(data=df,x='bill_length_mm',y='bill_depth_mm',kind='hex') # 육각형으로 나타냄
sns.jointplot(data=df,x='bill_length_mm',y='bill_depth_mm',kind='rg') # 산포도를 통해서 선형적인 분포 찾아냄
sns.jointplot(data=df,x='bill_length_mm',y='bill_depth_mm',kind='kde')

 

pairplot

dataframe 내의 모든 열의 관계를 그리는 함수입니다.

import seaborn as sns
df= sns.load_dataset('penguins') #seaborn 에서 제공하는 dataset
df.head()

sns.pairplot(data=df)
sns.pairplot(data=df,hue='species') # species = 범주형데이터 --> 색깔 나뉨

 

Barplot

범주형 데이터별로 대푯값을 그리는 함수입니다.

import numpy as np
import seaborn as sns

df = sns.load_dataset('penguins')

sns.barplot(data=df,x='sex',y='bill_length_mm') # default estimator = average
sns.barplot(data=df,x='sex', y= 'bill_length_mm',estimator=np.std)
sns.barplot(data=df,x='sex',y='bill_length_mm',hue='species')

 

Countplot

범주형 데이터별 개수를 나타내는 함수입니다.

import numpy as np
import seaborn as sns

df = sns.load_dataset('penguins')

sns.countplot(data=df,x='species')
sns.countplot(data=df,x='species',hue='sex')

 

boxplot

많이 사용되는 box plot을 그리는 함수입니다.

import numpy as np
import seaborn as sns

df = sns.load_dataset('penguins')

sns.boxplot(data=df,x='species',y='body_mass_g') # 가운데 median, 상단 : 3분위수(25%), 하단 : 1분위수(75%)
sns.boxplot(data=df,x='species',y='body_mass_g',hue='sex')

 

violinplot

boxplot과 유사하나, kde를 그려주는 함수입니다.

import numpy as np
import seaborn as sns

df = sns.load_dataset('penguins')

sns.violinplot(data=df,x='species',y='body_mass_g')
sns.violinplot(data=df,x='species',y='body_mass_g',hue='sex')
sns.violinplot(data=df,x='species',y='body_mass_g',hue='sex',split=True)

 

 

stripplot

모든 데이터포인트를 겹치는 포인트로 나타내는 함수입니다.

import numpy as np
import seaborn as sns

df = sns.load_dataset('penguins')

sns.stripplot(data=df,x='species',y='body_mass_g')
sns.stripplot(data=df,x='species',y='body_mass_g',alpha=0.5)
sns.stripplot(data=df,x='species',y='body_mass_g',jitter=False, alpha=0.2)

 

swarmplot

모든 데이터포인트를 겹치지 않는 포인트로 나타내는 함수입니다.

import numpy as np
import seaborn as sns

df = sns.load_dataset('penguins')

sns.swarmplot(data=df,x='species',y='body_mass_g')
sns.swarmplot(data=df,x='species',y='body_mass_g',alpha=0.5)
sns.swarmplot(data=df,x='species',y='body_mass_g',hue='sex',dodge=True)

 

heatmap

행렬을 heat map으로 나타내는 함수입니다.

import numpy as np
import seaborn as sns

df = sns.load_dataset('penguins')

corr = df.corr()
sns.heatmap(corr) # 더 큰 수치를 진한 색깔로 표한하는 함수
sns.heatmap(corr,annot=True,cmap='RdYlGn_r')

 

pairgrid

pairplot과 유사한, 직접 plot의 종류를 정할 수 있습니다.

import seaborn as sns
df= sns.load_dataset('penguins')

g = sns.PairGrid(df)
g.map_diag(sns.histplot)
g.map_upper(sns.scatterplot)
g.map_lower(sns.kdeplot)

 

Facetgrid

자료를 여러 기준으로 나누어 plot 하는 기능입니다.

import seborn as sns
df = sns.load_dataset('penguins')

g= sns.FacetGrid(data=df,col='species',row='sex')
g.map(sns.histplot,'body_mass_g',kde= True)

 

seaborn style(1)

스타일과 컨텍스트로 시각화 방법을 정할 수 있습니다.

- style : 그림의 전반적인 모양을 결정합니다.

- context : 그림이 사용될 문맥을 결정합니다.

import seaborn as sns

df = sns.load_dataset('penguins')

sns.set_style('darkgrid') #white, dark, whitegrid, darkgrid, ticks
sns.boxplot(data=df,x='species',y='body_mass_g',hue='sex')

 

seaborn style(2) - Despine

import seaborn as sns

df = sns.load_dataset('penguins')

sns.boxplot(data=df,x='species',y='body_mass_g',hue='sex')
sns.despine() # default --> right = true, top = true --> true이면 축제거

sns.boxplot(data=df,x='species',y='body_mass_g',hue='sex')
sns.despine(left=True,bottom=True)

 

seaborn style (3) - context

import seaborn as sns

df = sns.load_dataset('penguins')

sns.set_context('paper') #paper, notebook, talk, poster
sns.boxplot(data=df,x='species',y='body_mass_g',hue='sex')
반응형

댓글