Matplotlib에서 Box Plot 은 데이터의 분포를 시각화하는 데 사용되며, 데이터의 중앙값사분위수이상치 등을 직관적으로 보여줍니다. 주로 통계 분석에서 데이터의 분포와 변동성을 비교할 때 활용됩니다.

  • 중앙값 (Median): 데이터의 50번째 백분위수 (Q2).
  • 사분위수 (Quartiles):
    • Q1 (제1사분위수): 데이터의 25번째 백분위수.
    • Q3 (제3사분위수): 데이터의 75번째 백분위수.
  • IQR (Interquartile Range): Q3 – Q1.
  • 수염 (Whiskers):
    • 일반적으로 Q1 – 1.5×IQR과 Q3 + 1.5×IQR 범위 내의 데이터.
    • 이 범위를 벗어나는 값은 **이상치 (Outlier)**로 표시됩니다.
  • 이상치 (Outliers): 수염 범위 밖의 점으로 표시.

기본 사용법: plt.boxplot()

Box Plot을 그리는 기본 함수는 plt.boxplot()입니다.

plt.boxplot(
    x,                     # 데이터 (리스트 또는 배열)
    labels=None,           # 각 박스의 라벨
    notch=False,           # 중앙값 신뢰 구간 표시 (True/False)
    vert=True,             # 수직 박스 플롯 (False: 수평)
    patch_artist=False,    # 박스 스타일 설정 (True: 색상 채움)
    showmeans=False,       # 평균값 표시 (True)
    meanline=False,        # 평균을 선으로 표시 (True)
    showfliers=True,       # 이상치 표시 (True/False)
    whis=1.5               # 수염 범위 설정 (기본값: 1.5×IQR)
)

Box Plot Code

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(10)
data = [np.random.normal(0, std, 100) for std in range(1, 5)]

plt.boxplot(data, vert=True, patch_artist=True)
"""
notch=True : Shows a notch to show the confidence interval of the median.
vert=False : Displays the box horizontally.
patch_artist=True : Applies a style to fill the box.
"""
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Box Plot Example')
plt.show()

장점

  • 분포 비교: 여러 데이터 세트의 분포를 한 눈에 비교 가능.
  • 이상치 식별: 이상치를 쉽게 식별할 수 있음.
  • 간결성: 복잡한 데이터를 간결하게 요약.

단점

  • 세부 정보 부족: 히스토그램이나 바이올린 플롯에 비해 세부 분포 정보가 부족.
  • 오해 가능성: 중앙값과 평균이 다를 경우 해석 오류가 발생할 수 있음.

Box Plot vs Violin Plot

특징Box PlotViolin Plot
정보 제공사분위수, 중앙값, 이상치분포의 밀도와 사분위수
시각적 복잡성단순복잡
사용 사례빠른 분포 비교세부 분포 분석

정리

  • Box Plot은 데이터의 분포와 이상치를 직관적으로 보여줍니다.
  • plt.boxplot() 함수를 사용하며, notchpatch_artistwhis 등으로 커스터마이징 가능.
  • 색상, 선 스타일, 레이블 등을 조절하여 가독성을 높일 수 있습니다.
  • 여러 그룹의 데이터를 비교하거나 통계적 요약을 표시할 때 유용합니다.

Box Plot을 활용하면 데이터의 핵심 통계 정보를 효과적으로 시각화할 수 있습니다.

By Mark

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다