Seaborn 알아보기

박찬병·2024년 6월 28일

데이터 분석

목록 보기
4/11

Seaborn이란?

  • Matplotlib 기반 시각화 라이브러리
  • Seaborn의 함수는 figure-level과 axes-level로 구분된다.
  • axes-level 함수는 matplotlib의 Axes와 동일한 역할을 하며 이에 호환된다.
  • figure-level 함수는 seaborn의 facegrid() 함수를 사용하여 레이아웃을 변경할 수 있다.

막대 그래프(Bar plot)

막대 그래프를 그리는 함수로는 countplot()barplot()이 있다.
countplot()은 항목 별 개수로 막대 그래프를 그리며, pd.values_counts()를 시각화하는 역할이라고 할 수 있다.
barplot()은 y축 값들의 평균을 막대 높이로 나타내며, 오차 막대를 default로 포함한다.

import matplotlib.pyplot as plt
import seaborn as sns # seaborn은 보통 sns로 alias하여 import한다

# 데이터 가져오기
tips = sns.load_dataset('tips')

sns.countplot(data=tips, x='day')
plt.show()

결과

sns.barplot(x = tips['sex'], y = tips['tip'])
plt.show()

결과

함수의 hue를 설정하면 해당 특성의 범주 별로 그래프를 그린다.

sns.countplot(data=tips, x='day', hue='smoker')
plt.show()

결과

히스토그램(Histogram)

연속형 데이터의 히스토그램을 그리기 위해서는 histplot() 함수를 사용하면 된다.

sns.histplot(x='total_bill', data=tips)
plt.show()

결과

박스 플롯(Box plot)

숫자형 데이터의 사분위수를 표현하는 박스 플롯을 그리기 위해서는 boxplot() 함수를 사용하면 된다.
박스 플롯에서도 hue를 설정할 수 있다.

sns.boxplot(data=tips, y='tip', hue='time')

결과

바이올린 플롯(Violin Plot)

바이올린 플롯은 박스 플롯과 비슷한 정보를 나타내지만, 그래프의 폭으로 데이터의 분포도 함께 확인할 수 있다.

sns.violinplot(data=tips, x='day', y='tip', hue='smoker', split=True)

결과

히트맵(Heatmap)

히트맵은 heatmap() 함수를 이용해 얻을 수 있으며, 이는 데이터 간의 상관계수를 나타내는 데 사용할 수 있다.

df = tips.select_dtypes(['number']) # 수치 데이터 얻기

x = df.corr() # 상관계수

sns.heatmap(x, annot = True, cmap = 'viridis')
plt.show()

결과

페어 플롯(Pair plot)

페어 플롯은 격자 형태로 각 column 조합에 대한 히스토그램과 분포도를 나타낸다. 페어 플롯은 pairplot() 함수를 이용하여 얻을 수 있다.

iris = sns.load_dataset('iris') # 데이터 가져오기

sns.set_style('white')
sns.pairplot(iris, hue='species')
plt.show()

결과

0개의 댓글