본문 바로가기
학습 log (이론)/python

'Seaborn'

by abbear25 2020. 3. 4.

Seaborn

통계를 기반으로한 시각화

http://seaborn.pydata.org/

 

seaborn: statistical data visualization — seaborn 0.10.0 documentation

Seaborn is a Python data visualization library based on matplotlib. It provides a high-level interface for drawing attractive and informative statistical graphics. For a brief introduction to the ideas behind the library, you can read the introductory note

seaborn.pydata.org

확률 밀도 함수 (PDF, Probability Density Function)

값들의 분포를 표현

특정 구간에 포함 될 확률을 구하고 싶으면 기준 값 아래의 곡선의 넓이를 적분으로 계산 (모든 면적의 총합은 1)

무한대인 경우의 수에서 범위가 아닌 특정 값이 될 확률은 0

 

커널 밀도 추정 (KDE, Kernel Density Estimation)

굴곡진 데이터를 실제 분포와 근접하도록 부드러운 곡선으로 변형

pip install seaborn==0.10.0 #seaborn install

import pandas as pd
import seaborn as sb

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

#컬럼에 해당하는 값의 개수, 키 순서로 정렬, 플롯 그래프 그리기
df['컬럼'].value_counts().sort_index().plot()
#확률 밀도 함수 그래프로 변경, band width를 이용하여 굴곡 변경 (값이 클수록 부드러운 곡선으로 표현)
sb.kdeplot(df['컬럼'], bw=0.8) 
#기존 플롯과 확률 밀도 함수 그래프 함께 그리기
sb.distplot(df['컬럼'], bins=15)

#박스 플롯 그리기
df.plot(kind='box', y='컬럼')
#바이올린 확률 밀도 함수 그래프 함께 그리기
sb.violinplot(y=df['컬럼'])

#산점도 그리기
df.plot(kind='scatter', x='컬럼1', y='컬럼2')
#3차원으로 산점도 그리기
sb.kdeplot(df['컬럼1'], df['컬럼2'])

 

회귀선

흩어져있는 점들을 하나의 선으로 표현

서로 연관된 두 컬럼에 대해서 연관성을 추측할 수 있도록 기준을 제공

import pandas as pd
import seaborn as sb

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

#회귀선 그리기
sb.lmplot(data=df, x='컬럼1', y='컬럼2')

 

카테고리별 비교

import pandas as pd
import seaborn as sb

df = pd.read_csv('big_data.csv', index_col=0)

#박스 플롯 그래프 그리기
sb.catplot(data=df, x='os', y='price', kind='box')
#바이올린 플롯 그래프 그리기
sb.catplot(data=df, x='os', y='price', kind='violin')
#스트립 플롯 그래프 그리기 (box나 violin으로 구분하기 어려울 경우) 
sb.catplot(data=df, x='os', y='price', kind='strip', hue='processor_brand')
#스웜 플롯 그래프 그리기 (유사한 값의 점들이 겹치지 않도록 표현한 그래프) 
sb.catplot(data=df, x='os', y='price', kind='swarm', hue='processor_brand')
반응형

'학습 log (이론) > python' 카테고리의 다른 글

'데이터 분석'  (0) 2020.03.05
'통계 분석'  (0) 2020.03.04
'시각화'  (0) 2020.03.03
'pandas' 데이터 프레임  (0) 2020.03.01
'numpy'  (0) 2020.03.01