안녕하세요~ 꽁냥이에요. 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']) ## 수평 박스 플롯
이외에도 색상, 박스 폭 등 박스 플롯을 꾸밀 수 있는 인자들이 있습니다.
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을 이용하여 박스 플롯을 그리는 방법에 대해서 알아보았습니다. 박스 플롯은 자주 사용되므로 오늘 배운 내용 알아두시면 굉장히 유용할 겁니다. 지금까지 꽁냥이의 글 읽어주셔서 감사합니다. 안녕히 계세요~
'데이터 분석 > 시각화' 카테고리의 다른 글
[Seaborn] 6. 히스토그램(Histogram) 그리기 (feat. histplot) (0) | 2022.08.11 |
---|---|
[Seaborn] 5. 바이올린 플롯(Violin Plot) 그리기 (0) | 2022.08.10 |
[Seaborn] 3. 산점도(Scatter Plot) 그리기 (feat. scatterplot) (0) | 2022.08.07 |
[Seaborn] 2. 막대 그래프(바 차트, Bar Chart) 그리기 (feat. barplot) (2) | 2022.08.06 |
[Seaborn] 1. 선 그래프(라인 차트, Line Chart) 그리기 (feat. lineplot) (0) | 2022.08.04 |
댓글