Matplotlib에서 평균 선과 변동 구간을 함께 시각화하기
데이터를 시각화할 때 평균값만 선으로 그리는 것보다 표준편차와 같은 변동 범위를 함께 보여주면 훨씬 많은 정보를 전달할 수 있습니다. Matplotlib에서는 plot() 메서드로 평균 선을 그리고, fill_between() 메서드로 상한선과 하한선 사이의 영역을 채우는 방식으로 이를 손쉽게 구현할 수 있습니다.
구현 단계
- 그림(figure) 크기를 설정하고 서브플롯 주변 및 사이의 여백을 조정합니다.
- 평균(means)과 표준편차(stds) 배열을 준비합니다.
- plot() 메서드를 사용해 평균값을 선으로 그립니다.
- fill_between() 메서드로 means+stds와 means−stds 사이 영역을 alpha=0.7, 노란색으로 채웁니다.
- show() 메서드를 사용해 그림을 화면에 표시합니다.
예제 코드
import numpy as np import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True means = np.array([3, 5, 1, 8, 4, 6]) stds = np.array([1.3, 2.6, 0.78, 3.01, 2.32, 2.9]) plt.plot(means, color='red', lw=7) plt.fill_between(range(6), means - stds, means + stds, alpha=.7, color='yellow') plt.show()
실행 결과


위 코드를 실행하면 붉은색 굵은 선으로 표시된 평균값 추이와, 그 주위를 노란색 반투명 밴드로 감싼 표준편차 구간이 함께 나타납니다. 이렇게 하면 각 데이터 포인트에서 값이 얼마나 넓게 흩어져 있는지 한눈에 파악할 수 있습니다.
fill_between() 주요 파라미터 정리
- x: x축 좌표입니다. 예제에서는 range(6)을 사용해 0부터 5까지의 인덱스를 지정했습니다.
- y1, y2: 채워 넣을 영역의 하한과 상한입니다. 여기서는 means − stds와 means + stds를 사용해 ±1 표준편차 범위를 표현했습니다.
- alpha: 채우기 색상의 투명도(0~1)입니다. 값이 작을수록 더 투명하게 표시됩니다.
- color: 채우기 영역의 색상을 지정합니다.
이 기법은 실험 결과의 오차 범위, 센서 데이터의 변동성, 통계적 신뢰 구간 등을 직관적으로 보여줄 때 특히 유용합니다.