Python에서 히스토그램을 정규화하려면 matplotlib의 hist() 메서드에 density=True 옵션을 사용하면 됩니다. 정규화된 히스토그램은 막대의 높이가 단순한 빈도 수가 아니라 확률 밀도를 나타내며, 그래프 전체 아래쪽 면적의 합이 1이 되도록 조정됩니다.
정규화 히스토그램 만들기 단계
데이터로 사용할 숫자 리스트를 준비합니다.
plt.hist() 함수에 density=True 인자를 전달하여 히스토그램을 그립니다.
plt.show() 메서드를 호출하여 그림을 화면에 표시합니다.
예제 코드
import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True k = [5, 5, 5, 5] x, bins, p = plt.hist(k, density=True) plt.show()
실행 결과
위 코드를 실행하면 데이터 값 5에 해당하는 위치에 하나의 막대가 그려지며, y축은 빈도(count) 대신 확률 밀도(density) 값으로 표시됩니다. 모든 막대 너비와 높이를 곱한 값을 합산하면 총 면적이 1이 됩니다.
density=True의 의미
density=True는 각 구간(bin)의 빈도를 전체 데이터 개수와 bin 너비로 나누어 정규화합니다. 이렇게 하면 서로 다른 크기의 데이터셋이나 bin 간격을 가진 히스토그램끼리도 직접 비교할 수 있으며, 이론적인 확률 밀도 함수(PDF)와 겹쳐 그려 확인할 때 특히 유용합니다.