개요
Matplotlib와 Seaborn을 함께 사용하면 그룹화된 박스플롯(grouped boxplot)을 아주 간단하게 그릴 수 있습니다. 이 글에서는 요일(day)별 데이터를 성별(sex) 기준으로 그룹화하여 하나의 그래프에 나타내는 방법을 단계별로 소개합니다.
구현 단계
- 라이브러리 임포트:
matplotlib.pyplot과seaborn을 불러옵니다. - 그림 크기 설정: figure 크기를 지정하고, 서브플롯 사이 및 주변의 여백(padding)을 자동으로 조정합니다.
- 데이터셋 로드: Seaborn의 온라인 저장소에서 제공하는 예제 데이터셋(
tips)을 불러옵니다. - 박스플롯 생성: x축에는
day, y축에는total_bill을 지정하고,hue옵션에sex를 넣어 같은 요일 안에서 남성과 여성 그룹이 나란히 비교되는 박스플롯을 만듭니다. - 그래프 출력:
show()메서드를 호출해 완성된 그래프를 화면에 표시합니다.
코드 예제
import seaborn as sns
import matplotlib.pyplot as plt
# 그림 크기 설정
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
# Seaborn 데이터셋 불러오기
data = sns.load_dataset('tips')
# 그룹화된 박스플롯 생성
sns.boxplot(x=data['day'], y=data['total_bill'], hue=data['sex'])
plt.show()실행 결과
위 코드를 실행하면 요일별로 남성과 여성의 총 지출액(total_bill) 분포가 나란히 비교되는 다음과 같은 그래프가 출력됩니다.


마무리
sns.boxplot()의 hue 파라미터만 활용해도 별도의 복잡한 전처리 없이 범주형 변수를 기준으로 그룹화된 박스플롯을 손쉽게 작성할 수 있습니다. 이 방식은 카테고리 간 분포 차이를 한눈에 비교할 때 매우 유용합니다.