Sẽ hữu ích hơn nếu bạn đặt ra một ví dụ hoạt động hoàn chỉnh hơn (hoặc trong trường hợp này là không hoạt động).
Tôi đã thử những cách sau:
import numpy as np
import matplotlib.pyplot as plt
x = np.random.randn(1000)
fig = plt.figure()
ax = fig.add_subplot(111)
n, bins, rectangles = ax.hist(x, 50, density=True)
fig.canvas.draw()
plt.show()
Điều này thực sự sẽ tạo ra một biểu đồ biểu đồ thanh với trục y đi từ đó [0,1]
.
Hơn nữa, theo hist
tài liệu (tức là ax.hist?
từ ipython
), tôi nghĩ rằng tổng số tiền cũng ổn:
*normed*:
If *True*, the first element of the return tuple will
be the counts normalized to form a probability density, i.e.,
``n/(len(x)*dbin)``. In a probability density, the integral of
the histogram should be 1; you can verify that with a
trapezoidal integration of the probability density function::
pdf, bins, patches = ax.hist(...)
print np.sum(pdf * np.diff(bins))
Thử điều này sau các lệnh trên:
np.sum(n * np.diff(bins))
Tôi nhận được giá trị trả lại 1.0
như mong đợi. Hãy nhớ rằng điều normed=True
đó không có nghĩa là tổng giá trị tại mỗi thanh sẽ là thống nhất, nhưng thay vì tích phân trên các thanh là thống nhất. Trong trường hợp của tôi np.sum(n)
trả lại khoảng 7.2767
.