Pandas나 Matplotlib에서 하나의 그래프에 여러 상자 그림(boxplot)을 그리려면 몇 가지 간단한 단계만 거치면 됩니다. 상자 그림은 데이터의 중앙값, 사분위수, 분포 범위, 이상치를 한눈에 보여주기 때문에 여러 데이터 그룹을 비교할 때 특히 유용한 시각화 도구입니다.
구현 단계
그림 크기를 설정하고 서브플롯 사이와 주변의 여백(padding)을 조정합니다.
두 개의 열을 가진 Pandas 데이터프레임을 생성합니다.
plot()메서드에kind='box'옵션을 지정하여 데이터프레임을 시각화합니다.show()메서드를 호출해 완성된 그래프를 화면에 표시합니다.
예제 코드
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
# 그림 크기 설정
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
# 두 개의 열을 가진 Pandas 데이터프레임 생성
data = pd.DataFrame({"Box1": np.random.rand(10), "Box2": np.random.rand(10)})
# 데이터프레임을 상자 그림으로 시각화
ax = data[['Box1', 'Box2']].plot(kind='box', title='boxplot')
# 그래프 표시
plt.show()
실행 결과
위 코드를 실행하면 Box1과 Box2 두 열에 대한 상자 그림이 하나의 그래프에 나란히 그려집니다. 각 상자는 해당 열 데이터의 중앙값, 사분위 범위(IQR), 수염(whisker) 범위, 그리고 범위를 벗어난 이상치를 직관적으로 보여줍니다.

추가 팁
상자 그림의 모양을 더 세부적으로 조정하고 싶다면 다음 옵션들을 활용할 수 있습니다.
notch=True: 중앙값 부분이 잘린 노치(notch) 형태로 표시하여 중앙값의 신뢰 구간을 확인할 수 있습니다.patch_artist=True: 상자 내부에 색상을 채워 그룹을 더욱 구분하기 쉽게 만듭니다.vert=False: 상자 그림을 가로 방향으로 회전하여 표시합니다.열이 많은 데이터프레임이라면
data.plot(kind='box')처럼 열 목록을 생략해도 전체 수치형 열이 자동으로 그려집니다.