Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Matplotlib에서 동일한 면적의 빈으로 히스토그램을 만드는 방법은 무엇입니까?

<시간/>

matplotlib에서 동일한 면적의 빈으로 히스토그램을 만들기 위해 다음 단계를 수행할 수 있습니다. -

단계

  • Figure 크기를 설정하고 서브플롯 사이와 주변의 패딩을 조정합니다.

  • numpy를 사용하여 임의의 데이터 포인트를 만듭니다.

  • equal_area를 사용하여 히스토그램을 플로팅합니다. 패치의 동일한 영역을 만드는 방법입니다.

  • 그림을 표시하려면 show()를 사용하세요. 방법.

예시

import numpy as np
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

def equal_area(x, nbin):
   pow = 0.5
   dx = np.diff(np.sort(x))
   tmp = np.cumsum(dx ** pow)
   tmp = np.pad(tmp, (1, 0), 'constant')
   return np.interp(np.linspace(0, tmp.max(), nbin + 1), tmp, np.sort(x))

x = np.random.randn(1000)

n, bins, patches = plt.hist(x, equal_area(x, 20), edgecolor='black')

plt.show()

출력

다음 출력을 생성합니다 -

Matplotlib에서 동일한 면적의 빈으로 히스토그램을 만드는 방법은 무엇입니까?