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

Matplotlib로 최솟값·최댓값·평균·표준편차를 담은 상자 그림(Box Plot) 만들기

데이터 분석에서 상자 그림(box plot)은 최솟값, 최댓값, 평균, 표준편차 같은 핵심 통계 지표를 한눈에 파악할 수 있게 해주는 강력한 시각화 도구입니다. 이 글에서는 MatplotlibPandas를 활용해 이러한 통계 값을 포함하는 상자 그림을 만드는 방법을 단계별로 살펴보겠습니다.

구현 단계

  • 그림(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(): 데이터프레임의 각 열에 대해 상자 그림을 자동으로 생성합니다.

실행 결과

Matplotlib로 최솟값·최댓값·평균·표준편차를 담은 상자 그림(Box Plot) 만들기

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