Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Matplotlib 히스토그램에 로그 스케일 빈(Bin) 설정하는 방법

Matplotlib에서 히스토그램을 그릴 때 plt.hist() 함수의 bins 매개변수를 활용하면 로그 스케일의 빈(bin)을 간단하게 설정할 수 있습니다. 데이터가 넓은 범위에 걸쳐 분포되어 있거나 지수적으로 증가하는 경우, 로그 스케일 빈을 사용하면 분포를 훨씬 직관적으로 파악할 수 있습니다.

구현 단계

  • 범위가 100인 배열 x를 생성합니다.

  • plt.hist() 메서드로 히스토그램을 그립니다. 이때 np.logspace()를 사용하면 로그 스케일에서 균등한 간격으로 배치된 숫자들을 빈 경계값으로 전달할 수 있습니다.

  • plt.gca()로 현재 축(axes) 객체를 가져온 뒤, X축의 스케일을 로그(log)로 설정합니다.

  • plt.show() 메서드를 호출하여 완성된 그래프를 화면에 표시합니다.

예제 코드

from matplotlib import pyplot as plt
import numpy as np

x = np.array(range(100))

plt.hist(x, bins=np.logspace(start=np.log10(10), stop=np.log10(15), num=10))
plt.gca().set_xscale("log")
plt.show()

코드 설명

np.logspace(start, stop, num)은 10의 거듭제곱 형태로 숫자를 생성하는 함수입니다. 위 예제에서는 시작값을 10¹, 끝값을 10¹⁵로 지정하고 총 10개의 빈 경계를 만들었습니다. 또한 set_xscale("log")를 호출해 X축 자체도 로그 스케일로 변경했기 때문에, 각 빈의 폭이 화면상에서 동일하게 보이면서 로그 간격의 분포를 명확하게 확인할 수 있습니다.

실행 결과

Python Matplotlib 히스토그램에 로그 스케일 빈(Bin) 설정하는 방법