파이썬에서 데이터를 시각화하는 방법은 여러 방법이 존재한다.
우선, 라이브러리도 seaborn 이나 matplotlib 와 같은 대표적 시각화 툴이 있고, 아니면 shap이나 pdp와 같이, 모델링 이후 시각화를 할 때 사용하는 라이브러리 등이 존재한다.
오늘은 다양한 라이브러리들 중, 가장 범용적으로 사용하는 seaborn과 matplotlib 정리를 해 보았다.
히트맵, box플롯, scatter플롯, FacetGrid 차트 등 자주 사용하는 차트들을 살펴 보겠다.
막대 그래프 등은 너무 단순해서 이번 포스팅에서는 취급하지 않았지만, 추후 모델링 시 포스팅 할 예정이다.
또한 pdp나 shap 과 같은 시각화 라이브러리는, 자주 사용하지는 않으므로 이번 포스팅에서 다루지 않는다.
그러나 이후 모델 분석 과정에서 구현 방법을 정리해두도록 할 것이다.
목차
Scatter Plot
Box Plot
HeatMap
FacetGrid Plot
In [ ]:
# 필요한 Lib을 Import한 후, Colab을 이용해 데이터셋을 load합니다.
from google.colab import files
import io
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
uploaded = files.upload()
Saving diamonds.csv to diamonds.csv
In [ ]:
# 데이터셋을 확인합니다.
df=pd.read_csv(io.BytesIO(uploaded['filename.csv']))
df
Out[ ]:
carat | cut | color | clarity | depth | table | price | x | y | z | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 0.23 | Ideal | E | SI2 | 61.5 | 55.0 | 326 | 3.95 | 3.98 | 2.43 |
1 | 0.21 | Premium | E | SI1 | 59.8 | 61.0 | 326 | 3.89 | 3.84 | 2.31 |
2 | 0.23 | Good | E | VS1 | 56.9 | 65.0 | 327 | 4.05 | 4.07 | 2.31 |
3 | 0.29 | Premium | I | VS2 | 62.4 | 58.0 | 334 | 4.20 | 4.23 | 2.63 |
4 | 0.31 | Good | J | SI2 | 63.3 | 58.0 | 335 | 4.34 | 4.35 | 2.75 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
53935 | 0.72 | Ideal | D | SI1 | 60.8 | 57.0 | 2757 | 5.75 | 5.76 | 3.50 |
53936 | 0.72 | Good | D | SI1 | 63.1 | 55.0 | 2757 | 5.69 | 5.75 | 3.61 |
53937 | 0.70 | Very Good | D | SI1 | 62.8 | 60.0 | 2757 | 5.66 | 5.68 | 3.56 |
53938 | 0.86 | Premium | H | SI2 | 61.0 | 58.0 | 2757 | 6.15 | 6.12 | 3.74 |
53939 | 0.75 | Ideal | D | SI2 | 62.2 | 55.0 | 2757 | 5.83 | 5.87 | 3.64 |
53940 rows × 10 columns
In [ ]:
# ScatterPlot
sns.scatterplot(x='carat',y='price', data=data)
Out[ ]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f89b93b1860>
In [ ]:
# BoxPlot
sns.boxplot(data=data, x='table', y='price')
Out[ ]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f89b8316e80>
In [ ]:
# HeatMap
sns.heatmap(data=data.corr(),annot=True)
Out[ ]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f89b8303cc0>
In [ ]:
# FacetGrid Chart
g = sns.FacetGrid(data = data, col = 'clarity')
g.map_dataframe(
sns.scatterplot,
x = 'carat',
y = 'price',
hue = 'color',
alpha = 0.5, # tranparency
data = data,
)
g.add_legend();
'데이터 공부 > Python' 카테고리의 다른 글
Python Error - most likely due to a circular import 해결 (0) | 2022.04.13 |
---|---|
Pandas - 고객 구매 데이터 데이터 전처리 연습 (0) | 2021.08.19 |
04. String Manipulation (0) | 2021.06.04 |
03. 데이터 셋 병합 (Concat, Merge) (0) | 2021.06.01 |
02. 데이터 Load, 라이브러리 import (0) | 2021.06.01 |