728x90
반응형
이번 글에서는 그래프 시각화에 자주 쓰이는 plot들을 정리해 보았습니다.
Keywords
- FacetGrid
- PairGrid / PairPlot
- kdeplot
Facet Grid
- 쉽게 말해 Multi plot이라고 이해하면 됩니다.
- 하나의 데이터를 여러 개의 plot으로 나눠서 보고자 할 때 사용됩니다.
g = sns.FacetGrid(tips, col='time', row='smoker') #2x2 graph 그리기
g = g.map(plt.hist, 'total_bill') #각 분류별 total_bill의 histogram
- 위의 예시는 row/col을 나눠서 흡연자 여부와 점심/저녁 여부에 따른 총 식사 비용의 histogram을 보여주고 있습니다.
- tips 데이터를 column은 time을 기준으로 구분하고, row는 smoker를 기준으로 구분하여 plt.hist(histogram)으로 표현하라는 의미입니다.
Pair Grid
- PairPlot 혹은 PairGrid는 한 dataset에 존재하는 모든 series들 간의 상관관계를 한 번에 보여주는 표이다.
- 각 X변수들 간에 어떤 관계가 있는지 보는 것도 데이터 분석에 큰 도움이 된다.
- 아래 같이 기본으로 설정할 경우, 대각선 (diagonol)자리에 무의미한 분포도가 나오는데, 이 자리에 특정 그래프 타입을 지정할 수도 있다.
iris = sns.load_dataset('iris')
g = sns.PairGrid(iris)
g.map(plt.scatter)
원하는 위치에 원하는 형태의 그래프를 지정해서 X변수들 간의 상관관계 그리기
- g.map_diag(plt.hist) : 대각선(diagonal) 위치에는 histogram을 그려라
- g.map_offdiag(plt.scatter) : diagonal 외에는 변수들 간의 scatter plot을 그려라
g = sns.PairGrid(iris)
g.map_diag(plt.hist)
g.map_offdiag(plt.scatter)
kdeplot
데이터가 어떤 모양으로 얼마나 퍼져 있는지 분포를 확인할 때는 히스토그램(histogram)을 많이 활용하곤 합니다. 하지만 히스토그램은 구간을 어떻게 설정하냐에 따라 결과물이 매우 달라져서, 엉뚱한 결론과 해석을 내릴 수 있기 때문에 조심해야 합니다.
그래서 그 대안으로 많이 쓰이는 게 커널 밀도 추정(KDE: Kernel Density Estimator)입니다.
쉽게 얘기하면 히스토그램 같은 분포를 스무스~ 부드럽게 곡선화(?) 시켜서 그려주는 겁니다. 이렇게.
seaborn으로 KDE plot 그리기
기본적으로 두 개 인자만 넣어주면 된다. data와 shade
- data: pandas의 DataFrame, 파이썬의 list, numpy의 배열 등 시각화시키고 싶은 데이터 세트
- shade: 곡선 아래의 공간을 음영 처리할지 결정 (True/False)
예를 들어 3개의 데이터 세트를 가지고 KDE 플롯을 그린다고 하면 이렇게!
sns.kdeplot(dataset1, shade=True)
sns.kdeplot(dataset2, shade=True)
sns.kdeplot(dataset3, shade=True)
plt.legend()
plt.show()
728x90
반응형
'Python_Basic' 카테고리의 다른 글
if __name__ == "__main__": 은 무엇인가요? 쉽게 정리! (0) | 2022.03.21 |
---|---|
for 반복문: 데이터프레임과 함께 사용하기 (0) | 2022.03.20 |
여러 데이터 프레임 concat 후 인덱스 정렬하기 (0) | 2022.03.17 |