본문 바로가기
데이터 분석/시각화

[Seaborn] 4. 박스 플롯(Box Plot) 그리기 (feat. boxplot)

by 부자 꽁냥이 2022. 8. 9.

안녕하세요~ 꽁냥이에요. Seaborn에서는 boxplot을 이용하여 박스 플롯을 그릴 수 있습니다. 이번 포스팅에서는 그 방법에 대해서 소개하려고 합니다.

 

- 목차 -

1. Seaborn boxplot 기본

2. Seaborn boxplot 다양한 기능

 

Matplotlib으로 박스플롯(Box Plot) 그리는 방법을 알고 싶으신 분들은 아래에 포스팅해두었으니 참고해주세요.

 

[상자 수염 그림(Box and Whisker Plot)] 1. Matplotlib을 이용하여 상자 수염 그림 그리기

[상자 수염 그림(Box and Whisker Plot)] 2. Matplotlib을 이용하여 그룹 상자 수염 그림(박스 플롯) 그리기


   1. Seaborn boxplot 기본

boxplot은 기본적으로 x 또는 y인자에 수치형 원소를 갖는 배열을 넣어주게 됩니다. 이때 x인자에 넣어주면 수평 박스 플롯, y인자에 넣어주면 수직 박스 플롯을 그리게 됩니다.

 

import seaborn as sns
sns.set_theme(style='whitegrid')
tips = sns.load_dataset('tips')
ax = sns.boxplot(y=tips['total_bill']) ## 수직 박스 플롯
# ax = sns.boxplot(x=tips['total_bill']) ## 수평 박스 플롯

 

y 인자를 설정한 수직 박스 플롯(왼쪽)과 x인자를 설정한 수평 박스 플롯(오른쪽)(seaborn boxplot)

 

이외에도 색상, 박스 폭 등 박스 플롯을 꾸밀 수 있는 인자들이 있습니다.

 

import seaborn as sns
sns.set_theme(style='whitegrid')
tips = sns.load_dataset('tips')

## 수직 박스 플롯
ax = sns.boxplot(y=tips['total_bill'],
                 color='r', # 박스 색상
                 width=0.5, # 박스 폭 0~1
                 fliersize=10, # 아웃라이어 마커 사이즈
                 linewidth=4, # 라인 두꼐
                 saturation=0.2 # 색상 채도 0~1
                )

 


   2. Seaborn boxplot 다양한 기능

1) Pandas 데이터프레임 지원

Seaborn은 Pandas 데이터프레임으로 이루어진 데이터의 시각화를 편리하게 해 줍니다.

 

boxplot의 data인자에 데이터프레임을 넣고 x(또는 y) 인자에 칼럼명을 지정합니다. 이때 칼럼명은 반드시 데이터프레임에 있어야 합니다.

 

import seaborn as sns
sns.set_theme(style='whitegrid')
tip_df = sns.load_dataset('tips')

## 수직 박스 플롯
ax = sns.boxplot(data=tip_df, y='total_bill')

 

여기에 x인자를 추가하면 여러 개 박스 플롯을 그릴 수 있습니다. 꽁냥이는 요일별 total_bill 박스 플롯을 그려보았어요. 이때 order 인자를 사용하여 요일 순서를 정해서 박스 플롯을 그릴 수 있어요.

 

ax = sns.boxplot(data=tip_df, x='day', y='total_bill', 
                 order=['Sun', 'Sat', 'Fri', 'Thur'])

 

 


2) 범주를 색상으로 표현(hue, hue_order)

추가적인 범주형 변수를 이용하여 더 세분화된 박스 플롯을 그리고 싶다면 hue를 이용하면 됩니다. hue 인자에 범주형 칼럼명을 넣어주면 해당 범주에 대한 세분화된 박스 플롯을 그릴 수 있어요. 이때 hue_order를 이용하면 범주의 색상 적용 순서를 바꿀 수 있어요.

 

아래 코드를 보시면 hue, hue_order의 사용법을 쉽게 알 수 있을 거예요. 이때 palette를 사용하여 컬러 맵을 지정해주었습니다. palette에서 사용할 수 있는 컬러 맵은 여기를 참고해주세요.

ax = sns.boxplot(data=tip_df, x='day', y='total_bill',
                 order=['Sun', 'Sat', 'Fri', 'Thur'],
                 hue='time',
                 hue_order=['Dinner', 'Lunch'],
                 palette='cool'
                )

 


이번 포스팅에서는 Seaborn을 이용하여 박스 플롯을 그리는 방법에 대해서 알아보았습니다. 박스 플롯은 자주 사용되므로 오늘 배운 내용 알아두시면 굉장히 유용할 겁니다. 지금까지 꽁냥이의 글 읽어주셔서 감사합니다. 안녕히 계세요~

 


댓글


맨 위로