Seaborn 시각화(1)

이번 글에서는 Seaborn 라이브러리에 대해 알아볼 것이다. Seaborn은 Matplotlib의 기반 위에 만들어진 라이브러리이다. 특히 Seaborn 라이브러리는 코드가 쉽고 간결하며 다양한 통계 그래프를 그릴 수 있어 매력적이다.


산점도, 회귀선이 있는 산점도

산점도는 서로 다른 2개의 연속형(수치형) 변수 사이에 점을 찍는 그래프이다. 보통은 Scatterplot을 사용하지만, 이외에도 relplot, regplot을 사용한다.

import matplotlib.pyplot as plt
import seaborn as sns

tips = sns.load_dataset('tips')

sns.scatterplot(x = 'total_bill', y = 'tip', data = tips)
plt.show()

데이터는 Seaborn 라이브러리에 내장되어 있는 tips 데이터를 사용했다. 이것이 가장 일반적인 산점도 그래프이다. 다음으로는 회귀선까지 추가하는 regplot 함수를 활용해 그래프를 작성해보자.

fig, ax = plt.subplots(nrows = 1, ncols = 2, figsize = (15, 5))

sns.regplot(x = 'total_bill',
            y = 'tip',
           data = tips,
           ax = ax[0],
           fit_reg = True)

sns.regplot(x = 'total_bill',
           y = 'tip',
           data = tips,
           ax = ax[1],
           fit_reg = False)

plt.show()

그래프를 두 개로 나타냈다. regplot() 함수 안에 fit_reg를 True로 나타내면 회귀선이 나타난다. False로 하면 회귀선이 나타나지 않게 된다.


히스토그램 / 커널 밀도 그래프

히스토그램은 연속형(수치형) 데이터의 분포를 나타내는데 displot() 함수를 이용해 사용된다. 기본값으로 히스토그램과 커널 밀도 함수를 그래프로 출력한다. 이때 커널 밀도 함수는 그래프의 면적이 1이 되도록 하는 것이 특징이다. 먼저 기본 함수인 displot()을 활용해 그래프를 작성하자.

tips = sns.load_dataset('tips')
sns.displot(x = 'tip', data = tips)
plt.show()

이번에는 커널 밀도 그래프를 그려보자. kind = 'Kde'를 추가해주면 된다.

sns.displot(x = 'tip', kind = 'kde', data = tips)
plt.show()

두 그래프의 차이점은 y축 이름이 서로 다른 것을 확인할 수 있다. 히스토그램은 x축 데이터에 대해 빈도수로 표시한 반면 커널 밀도 그래프는 비율로 표시한다. 그래프의 종류이므로 목적에 따라 선택해 사용하면 된다.


박스 플롯 그래프

Matplotlib에서도 설명했기에 간단하게 설명한다. Seaborn에서는 boxplot() 또는 violinplot() 함수를 사용하면 더욱 쉽게 구현이 가능하다. 그 외에도 swarmplot() 함수를 구현하면 데이터의 분포도 같이 확인할 수 있다. alpha 값을 조정하면서 투명도도 조절할 수 있다.

sns.boxplot(x = 'day', y = 'total_bill', data = tips)
sns.swarmplot(x = 'day', y = 'total_bill', data = tips, alpha = .25)
plt.show()

 

'파이썬 시각화' 카테고리의 다른 글

Seaborn 시각화(2)  (0) 2021.09.29
Matplotlib 시각화(2)  (0) 2021.09.28
Matplotlib 시각화(1)  (0) 2021.09.27
TAGS.

Comments