Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib로 그룹화된 박스플롯(Boxplot) 만드는 방법

개요

Matplotlib와 Seaborn을 함께 사용하면 그룹화된 박스플롯(grouped boxplot)을 아주 간단하게 그릴 수 있습니다. 이 글에서는 요일(day)별 데이터를 성별(sex) 기준으로 그룹화하여 하나의 그래프에 나타내는 방법을 단계별로 소개합니다.

구현 단계

  • 라이브러리 임포트: matplotlib.pyplotseaborn을 불러옵니다.
  • 그림 크기 설정: 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) 분포가 나란히 비교되는 다음과 같은 그래프가 출력됩니다.

Matplotlib로 그룹화된 박스플롯(Boxplot) 만드는 방법Matplotlib로 그룹화된 박스플롯(Boxplot) 만드는 방법

마무리

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