일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- join
- 데이터분석
- solvesql
- 프로그래머스
- airflow 설치
- 데이터리안 웨비나
- GROUPBY
- matplotlib
- SQL
- 그로스해킹
- SQLite
- not in
- 파이썬
- pandas
- hackerrank
- having
- 다중 JOIN
- 데이터시각화
- Round
- Oracle
- Limit
- airflow.cfg
- 전처리
- SUM
- TRUNCATE
- 결측값
- PostgreSQL
- 머신러닝
- seaborn
- MySQL
Archives
- Today
- Total
Milky's note
[K-Digital] Seaborn 본문
Seaborn이란?
- matplotlib을 기본으로 다양한 시각화 기법을 제공하는 라이브러리.
- pandas DataFrame과 매우 호환성이 높음
- e.g. sns.xxxplot(data=df) <--- 기본세팅!
# 라이브러리와 데이터를 불러오고, 시각화를 위한 세팅
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme(style='whitegrid')
penguins = sns.load_dataset("penguins")
# seaborn에서 기본으로 제공하는 데이터셋
penguins
species | island | bill_length_mm | bill_depth_mm | flipper_length_mm | bpdy_mass_g | sex | |
0 | Adelie | Torgersen | 39.1 | 18.7 | 181.0 | 3750.0 | Male |
1 | Adelie | Torgersen | 39.5 | 17.4 | 186.0 | 3800.0 | Female |
2 | Adelie | Torgersen | 40.3 | 18.0 | 195.0 | 3250.0 | Female |
3 | Adelie | Torgersen | NaN | NaN | NaN | NaN | NaN |
4 | Adelie | Torgersen | 36.7 | 19.3 | 193.0 | 3450.0 | Female |
... | ... | ... | ... | ... | ... | ... | |
339 | Gentoo | Biscoe | NaN | NaN | NaN | NaN | NaN |
340 | Gentoo | Biscoe | 46.8 | 14.3 | 215.0 | 4850.0 | Female |
341 | Gentoo | Biscoe | 50.4 | 15.7 | 222.0 | 5750.0 | Male |
342 | Gentoo | Biscoe | 45.2 | 14.8 | 212.0 | 5200.0 | Female |
343 | Gentoo | Biscoe | 49.9 | 16.1 | 213.0 | 5400.0 | Male |
344 rows × 7 columns
Histplot
- 가장 기본적으로 사용되는 히스토그램을 출력하는 plot.
- 전체 데이터를 특정 구간별 정보를 확인할 때 사용
# penguin 데이터에 histplot을 출력
sns.histplot(data=penguins, x="flipper_length_mm",hue="species", multiple="stack")
Displot
- distribution들을 여러 subplot들로 나눠서 출력해주는 plot.
- displot에 kind를 변경하는 것으로, histplot, kdeplot, ecdfplot 모두 출력이 가능. e.g. displot(kind="hist")
# penguin 데이터에 displot을 출력
sns.displot(data=penguins, x="flipper_length_mm",hue="species", col="species")
# 위에있는 hisplot와 다른 점은 col을 사용해서 각각 나누어서 출력을 할 수 있다.
Barplot
- 어떤 데이터에 대한 값의 크기를 막대로 보여주는 plot. (a.k.a. 막대그래프)
- 가로 / 세로 두 가지로 모두 출력 가능
# penguin 데이터에 barplot을 출력합니다.
# sns.barplot(data=penguins, x="flipper_length_mm", y="species", hue="species")
# sns.barplot(data=penguins, y="flipper_length_mm", x="species", hue="species")
sns.barplot(data=penguins, y="body_mass_g", x="species", hue="species")
Countplot
- 범주형 속성을 가지는 데이터들의 histogram을 보여주는 plot.
- 종류별 count를 보여주는 방법
# penguin 데이터에 countplot을 출력합니다.
sns.countplot(data=penguins, x="sex", hue="species")
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="species")
sns.boxplot(data=penguins, x="flipper_length_mm", y="species", hue="sex")
Violinplot
- 데이터에 대한 분포 자체를 보여주는 plot.
- boxplot과 비슷하지만, 전체 분포에 대한 그림을 보여준다는 점에서 boxplot과 다름
- 보통 boxplot과 함께 표시하면, 평균 근처에 데이터가 얼마나 있는지(boxplot) 전체적으로 어떻게 퍼져있는지(violinplot) 모두 확인가능
# penguin 데이터에 violinplot을 출력합니다.
sns.violinplot(data=penguins, y="flipper_length_mm", x="species", hue="species")
Lineplot
- 특정 데이터를 x, y로 표시하여 관계를 확인할 수 있는 plot. (선 그래프)
- 수치형 지표들 간의 경향을 파악할 때 많이 사용
# penguin 데이터에 lineplot을 출력합니다.
sns.lineplot(data=penguins, x="flipper_length_mm", y="body_mass_g", hue="species")
Pointplot
- 특정 수치 데이터를 error bar와 함께 출력해주는 plot.
- 수치 데이터를 다양한 각도에서 한 번에 바라보고 싶을 때 사용
- 데이터와 error bar를 한 번에 찍어주기 때문에, 살펴보고 싶은 특정 지표들만 사용하는 것이 좋음
# penguin 데이터에 pointplot을 출력합니다.
sns.pointplot(data=penguins, y="flipper_length_mm", x="sex", hue="species")
Scatterplot
- lineplot과 비슷하게 x, y에 대한 전체적인 분포를 확인하는 plot.
- lineplot은 경향성에 초점을 둔다면, scatterplot은 데이터 그 자체가 퍼져있는 모양에 중점을 둠
# penguin 데이터에 scatterplot을 출력합니다.
sns.scatterplot(data=penguins, x="body_mass_g", y="flipper_length_mm", hue="species")
sns.scatterplot(data=penguins, x="bill_length_mm", y="bill_depth_mm", hue="sex")
Pairplot
- 주어진 데이터의 각 feature들 사이의 관계를 표시하는 Plot.
- scatterplot, FacetGrid, kdeplot을 이용하여 feature간의 관계를 잘 보여줌
- 각 feature에 대해 계산된 모든 결과를 보여주기 때문에, feature가 많은 경우 사용하기 적합하지 않음
# penguin 데이터에 pairplot을 출력합니다.
#sns.pairplot(data=penguins, hue="species")
sns.pairplot(data=penguins, hue="sex")
Heatmap
- 정사각형 그림에 데이터에 대한 정도 차이를 색 차이로 보여주는 plot.
- 말 그대로 heatmap이기 때문에, 열화상카메라로 사물을 찍은 것처럼 정보의 차이를 보여줌
- pairplot과 비슷하게 feature간 관계를 시각화할 때 많이 사용
# 각 feature간 상관관계를 파악하기 위해 Correlation matrix를 만듭니다.
import pandas as pd
corr = penguins.corr()
# 상관관계 지수 구해주는 함수 corr()
# penguin 데이터에 heatmap을 출력합니다.
sns.heatmap(corr)
'Python > 요약 정리' 카테고리의 다른 글
[Python] timedelta(months=n) (2) | 2023.11.13 |
---|---|
[K-Digital] 자주쓰이는 pandas 정리 (0) | 2022.05.24 |
[K-Digital] Python 기초 문법 - Data Type (0) | 2022.05.18 |
[Part 2] 시각화-area plot, pie chart (0) | 2022.02.13 |
[Part 2] 시각화-area plot, pie chart (0) | 2022.02.13 |
Comments