728x90
◎ Python_Seaborn
- matplotlib을 기본으로 다양한 시각화 기법을 제공하는 라이브러리.
- pandas DataFrame과 매우 호환이 잘 되어 많이 사용하는 라이브러리 중 하나.
§ 백문이 불여일견이라
# 데이터 분석을 위한 4가지 기본 라이브러리 세팅 필수
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
sns.set_theme(style='whitegrid') # 스타일을 바꿀 수 있다.
sns.set_palette("nipy_spectral") # 그래프의 색상도 바꿀 수 있다.
# 파이썬에서 제공하는 기본 dataset "penguins"를 시각화해 봅시다.
penguins = sns.load_dataset("penguins")
penguins.columns # 분석에 앞서 변수 확인해 보기
※ Histplot
- 가장 기본적으로 사용되는 히스토그램을 출력하는 plot.
- 전체 데이터를 특정 구간별 정보를 확인할 때 사용합니다.
# penguin 데이터에 histplot을 출력합니다. 구간별 정보를 보고 싶을 때 사용
sns.histplot(data=penguins, x='flipper_length_mm', hue="species", multiple='stack')
※ Distplot
- distribution들을 여러 subplot들로 나눠서 출력해주는 plot
- displot에 kind를 변경하는 것으로, histplot, kde, ecdf 모두 출력이 가능합니다. e.g. displot(kind="hist")
# penguin 데이터에 displot을 출력합니다.
sns.displot(data=penguins,x="flipper_length_mm", hue='species',kind="ecdf")
sns.displot(data=penguins,x="flipper_length_mm", hue='species',kind="kde")
sns.displot(data=penguins,x="flipper_length_mm", hue='species',kind="hist")
sns.displot(data=penguins,x="flipper_length_mm", hue='species',col='species')
※ Barplot
- 어떤 데이터에 대한 값의 크기를 막대로 보여주는 plot. (a.k.a. 막대그래프)
- 가로 / 세로 두 가지로 모두 출력 가능합니다.
# penguin 데이터에 barplot을 출력합니다.
sns.barplot(data=penguins,y="flipper_length_mm", hue='species', x='species')
plt.legend(loc="upper left") # 레전드의 위치 설정
※ Countplot
- 범주형 속성을 가지는 데이터들의 histogram을 보여주는 plot.
- 종류별 count를 보여주는 방법입니다.
# penguin 데이터에 countplot을 출력합니다.
sns.countplot(data=penguins,x='species', hue='sex')
※ Boxplot (☆중요★)
- 데이터의 각 종류별로 사분위 수(quantile)를 표시하는 plot.
- 특정 데이터의 전체적인 분포를 확인하기 좋은 시각화 기법입니다.
- box와 전체 range의 그림을 통해 outlier(이상값)를 찾기 쉽습니다. (IQR : Inter-Quantile Range)
# penguin 데이터에 boxplot을 출력합니다.
sns.boxplot(data=penguins,x='flipper_length_mm',y='species',hue='species')
sns.boxplot(data=penguins,x='body_mass_g',y='species',hue='sex')
### 다른 변수들도 넣어보며 다양하게 직접 실행해 볼 것을 강력 추천합니다!! ###
※ Violinplot
- 데이터에 대한 분포 자체를 보여주는 plot.
- 보통 boxplot과 함께 표시하면, 평균 근처에 데이터가 얼마나 있는지(boxplot) 전체적으로 어떻게 퍼져있는지(violinplot) 모두 확인이 가능합니다.
# penguin 데이터에 violinplot을 출력합니다.
sns.violinplot(data=penguins,y='flipper_length_mm',x='species',hue='species')
sns.violinplot(data=penguins,y='flipper_length_mm',x='species',hue='sex')
※ Pointplot
- 특정 수치 데이터를 error bar와 함께 출력해주는 plot.
- 수치 데이터를 다양한 각도에서 한 번에 바라보고 싶을 때 사용합니다.
- 데이터와 error bar를 한 번에 찍어주기 때문에, 살펴보고 싶은 특정 지표들만 사용하는 것이 좋습니다.
# penguin 데이터에 pointplot을 출력합니다.
sns.pointplot(data=penguins,y='flipper_length_mm',x='sex',hue='species')
※ Lineplot
- 특정 데이터를 x, y로 표시하여 관계를 확인할 수 있는 plot. (선 그래프)
- 수치형 지표들 간의 경향을 파악할 때 많이 사용합니다.
# penguin 데이터에 lineplot을 출력합니다.
sns.lineplot(data=penguins,x='flipper_length_mm',y='body_mass_g',hue='sex') # 기본 95%의 신뢰구간 설정
sns.lineplot(data=penguins,x='flipper_length_mm',y='body_mass_g',hue='sex',ci=None) # ci=None 신뢰구간 미포함
※ Scatterplot
- lineplot과 비슷하게 x, y에 대한 전체적인 분포를 확인하는 plot.
- lineplot은 경향성에 초점을 둔다면, scatterplot은 데이터 그 자체가 퍼져있는 모양에 중점을 둡니다.
# penguin 데이터에 scatterplot을 출력합니다.
sns.scatterplot(data=penguins,x='body_mass_g', y='flipper_length_mm', hue='species')
※ Pairplot
- 주어진 데이터의 각 feature들 사이의 관계를 표시하는 Plot.
- scatterplot, FacetGrid, kdeplot을 이용하여 feature간의 관계를 잘 보여줍니다.
- 각 feature에 대해 계산된 모든 결과를 보여주기 때문에, feature가 많은 경우 사용하기 적합하지 않습니다.
# penguin 데이터에 pairplot을 출력합니다.
sns.pairplot(data=penguins,hue='species')
※ Heatmap (☆중요★)
- 정사각형 그림에 데이터에 대한 정도 차이를 색 차이로 보여주는 plot.
- 말 그대로 heatmap이기 때문에, 열화상카메라로 사물을 찍은 것처럼 정보의 차이를 보여줍니다.
- pairplot과 비슷하게 feature간 관계를 시각화할 때 많이 사용합니다.
# 각 feature간 상관관계를 파악하기 위해 Correlation matrix를 만듭니다.
# Tip. 상관관계 != 인과관계
corr = penguins.corr()
# penguin 데이터에 heatmap을 출력합니다.
sns.heatmap(corr)
728x90
'Data scientist > PYTHON' 카테고리의 다른 글
Python_Crawling (0) | 2021.07.30 |
---|---|
Python_Pandas (0) | 2021.07.28 |
Python_Numpy (0) | 2021.07.27 |
Python_데이터 입출력(IO) (0) | 2021.07.23 |
Python_function() (0) | 2021.07.22 |