데이터의 값 범위가 넓거나 작은 값들이 몰려 있을 때는 일반 선형 축보다 로그 스케일(log scale)로 히스토그램을 그리는 것이 분포를 더 잘 보여줍니다. 파이썬의 Matplotlib에서는 hist() 메서드에 log=True 인자만 추가하면 간단하게 로그 스케일 히스토그램을 만들 수 있습니다.
구현 단계
시각화할 숫자 데이터를 리스트 또는 NumPy 배열로 준비합니다.
plt.hist()를 호출할 때 데이터에 로그 변환(np.log)을 적용하고, 밀도 정규화를 위해 density=True, Y축 로그 스케일 적용을 위해 log=True 옵션을 함께 지정합니다.
plt.show() 메서드를 사용해 완성된 그래프를 화면에 출력합니다.
예제 코드
import numpy as np import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True k = np.array([5, 5, 5, 5]) x, bins, p = plt.hist(np.log(k), density=True, log=True) plt.show()
코드 설명
np.log(k): 데이터 배열 k의 각 요소에 자연로그를 취해 새로운 배열을 생성합니다.
density=True: 히스토그램 막대 높이의 합이 1이 되도록 정규화하여 확률 밀도 형태로 표현합니다.
log=True: Y축을 로그 스케일로 설정하여 값의 차이가 큰 경우에도 분포를 명확하게 보여줍니다.
실행 결과

위 코드를 실행하면 Y축이 로그 스케일로 표시된 히스토그램이 출력됩니다. 이처럼 log=True 옵션 하나만으로 손쉽게 로그 히스토그램을 구현할 수 있어, 지수적으로 증가하는 데이터나 극단적인 값 차이가 있는 데이터를 시각화할 때 매우 유용합니다.