Matplotlib에서 산점도에 평균선 그리는 방법
데이터 시각화에서 평균선은 데이터의 중심 경향을 한눈에 파악할 수 있게 해주는 매우 유용한 도구입니다. Python의 대표적인 시각화 라이브러리인 Matplotlib를 사용하면 단 몇 줄의 코드만으로 산점도나 라인 플롯에 평균선을 손쉽게 추가할 수 있습니다.
Matplotlib에서 플롯에 평균선을 그리려면 다음 단계를 따르면 됩니다.
- 그림(figure) 크기를 설정하고 서브플롯 주변과 사이의 여백을 조정합니다.
- NumPy를 사용하여 x, y 데이터 포인트를 생성합니다.
- subplots() 메서드로 figure와 서브플롯 집합을 생성합니다.
- plot() 메서드로 x, y 데이터를 시각화합니다.
- x 배열의 평균값을 계산합니다.
- 계산된 평균값을 이용해 평균선을 plot() 메서드로 그립니다.
- figure에 범례(legend)를 배치합니다.
- show() 메서드로 figure를 화면에 표시합니다.
예제 코드
import numpy as np from matplotlib import pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x = np.array([3, 4, 5, 6, 7, 8, 9]) y = np.array([6, 5, 4, 3, 2, 1, 6]) fig, ax = plt.subplots() ax.plot(x, y, 'o-', label='line plot') y_avg = [np.mean(x)] * len(x) ax.plot(x, y_avg, color='red', lw=6, ls='--', label="average plot") plt.legend(loc=0) plt.show()
코드 핵심 설명
위 코드에서 가장 중요한 부분은 y_avg = [np.mean(x)] * len(x)입니다. 이 코드는 x 배열의 평균값을 계산한 뒤, 해당 값을 데이터 개수만큼 반복하여 수평선 형태의 리스트를 만듭니다. 이렇게 생성된 평균선은 빨간색 굵은 점선(-- 스타일)으로 표시되어 원본 라인 플롯과 시각적으로 쉽게 구별됩니다.
또한 label 옵션을 활용해 각 선에 이름을 지정하고, plt.legend(loc=0)으로 최적의 위치에 범례를 자동 배치하면 그래프의 가독성이 크게 향상됩니다.
출력 결과

실행 결과를 보면 파란색 마커가 있는 라인 플롯 위로 x 값의 평균을 나타내는 빨간색 점선이 수평으로 그려진 것을 확인할 수 있습니다. 이 방식은 산점도(scatter plot)에도 동일하게 적용할 수 있으며, ax.scatter()로 데이터를 표시한 후 같은 방법으로 평균선을 추가하면 됩니다.