데이터 분석에서 상자 그림(box plot)은 최솟값, 최댓값, 평균, 표준편차 같은 핵심 통계 지표를 한눈에 파악할 수 있게 해주는 강력한 시각화 도구입니다. 이 글에서는 Matplotlib와 Pandas를 활용해 이러한 통계 값을 포함하는 상자 그림을 만드는 방법을 단계별로 살펴보겠습니다.
구현 단계
- 그림(figure)의 크기를 설정하고, 서브플롯 사이와 주변의 여백(padding)을 자동으로 조정합니다.
- NumPy를 사용해 5×5 크기의 무작위 데이터셋을 생성합니다.
- 생성된 데이터에서 열(column)별로 최솟값, 최댓값, 평균, 표준편차를 계산합니다.
- 계산된 통계 값들을 Pandas 데이터프레임으로 정리합니다.
- 데이터프레임의 각 열을 기반으로 상자 그림을 그립니다.
예제 코드
import numpy as np import pandas as pd from matplotlib import pyplot as plt # 그림 크기 및 레이아웃 설정 plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True # 5x5 무작위 데이터 생성 data = np.random.randn(5, 5) # 열별 통계 값 계산 min = data.min(0) max = data.max(0) avg = data.mean(0) std = data.std(0) # 통계 값으로 데이터프레임 생성 df = pd.DataFrame(dict(min=min, max=max, avg=avg, std=std)) # 상자 그림 그리기 df.boxplot() plt.show()
코드 설명
np.random.randn(5, 5): 평균 0, 표준편차 1의 정규분포를 따르는 5×5 무작위 배열을 만듭니다.data.min(0),data.max(0),data.mean(0),data.std(0): 인자0은 열 방향 연산을 의미하며, 각 열마다 최솟값·최댓값·평균·표준편차를 구합니다.pd.DataFrame(dict(...)): 네 가지 통계 값을 하나의 데이터프레임으로 묶어 열 이름을min,max,avg,std로 지정합니다.df.boxplot(): 데이터프레임의 각 열에 대해 상자 그림을 자동으로 생성합니다.
실행 결과

코드를 실행하면 min, max, avg, std 네 개 열에 대한 상자 그림이 나란히 표시됩니다. 각 상자는 데이터의 분포를 요약해 보여주므로, 여러 통계 지표를 손쉽게 비교할 수 있습니다.