프로필 히스토그램(profile histogram)은 각 빈(bin)에 해당 구간 데이터들의 평균값을 담는 특수한 형태의 히스토그램입니다. 일반 히스토그램이 구간별 개수(count)를 표시하는 것과 달리, 프로필 히스토그램은 구간별 평균을 보여주기 때문에 두 변수 간의 관계를 직관적으로 파악할 때 유용합니다.
Python에서 프로필 히스토그램 그리는 방법
Python에서 프로필 히스토그램을 그리려면 Seaborn 라이브러리의 regplot 메서드를 활용하면 됩니다. x_bins 파라미터를 사용하면 x 변수가 자동으로 이산형 빈으로 나뉘고, 각 빈 안의 y 값 평균이 마커와 오차 막대(error bar)와 함께 표시됩니다.
구현 단계
- 그림(figure) 크기를 설정하고 서브플롯 주변의 여백(padding)을 조정합니다.
- Numpy를 사용하여 x, y 데이터 포인트를 생성합니다.
- seaborn.regplot으로 데이터와 선형 회귀 모델 피팅 결과를 함께 시각화합니다. x_bins 파라미터로 x 변수를 이산형 빈으로 나누고, fit_reg=True를 지정하면 x와 y 변수 간의 회귀 모델이 함께 그려집니다.
- plt.show() 메서드를 호출하여 그림을 화면에 출력합니다.
예제 코드
import numpy as np import seaborn as sns from matplotlib import pyplot as plt plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True x = np.random.uniform(-5, 5, 1000) y = np.random.normal(x**2, np.abs(x) + 1) sns.regplot(x=x, y=y, x_bins=20, marker='o', fit_reg=True) plt.show()
코드 설명
np.random.uniform(-5, 5, 1000): -5부터 5 사이의 균등 분포에서 1,000개의 x 값을 생성합니다.np.random.normal(x**2, np.abs(x) + 1): 평균이 x²이고 표준편차가 |x|+1인 정규 분포에서 y 값을 생성합니다.x_bins=20: x 변수를 20개의 빈으로 나누어 각 빈의 y 평균을 계산합니다.marker='o': 데이터 포인트를 원형 마커로 표시합니다.fit_reg=True: 전체 데이터에 대한 선형 회귀선을 함께 표시합니다.
실행 결과
위 코드를 실행하면 다음과 같은 출력 결과가 생성됩니다.
