Sẽ hữu ích hơn nếu bạn đặt một ví dụ hoàn chỉnh hơn (hoặc trong trường hợp này không hoạt động).
tôi thử như 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, normed=True)
fig.canvas.draw()
plt.show()
này thực sự sẽ tạo ra một biểu đồ thanh biểu đồ với một trục y mà đi từ [0,1]
.
Hơn nữa, theo các tài liệu hist
(tức ax.hist?
từ ipython
), tôi nghĩ số tiền là tốt quá:
*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))
Cho một thử này sau khi các lệnh trên:
np.sum(n * np.diff(bins))
tôi nhận được giá trị trả lại là 1.0
như mong đợi. Hãy nhớ rằng normed=True
không có nghĩa là tổng giá trị tại mỗi thanh sẽ là sự thống nhất, nhưng thay vì tích phân trên các thanh là sự thống nhất. Trong trường hợp của tôi np.sum(n)
trả lại khoảng 7.2767
.
Tôi biết điều này là cũ, nhưng để tham khảo trong tương lai & bất cứ ai đến thăm trang này, loại trục lây lan được gọi là một "mật độ xác suất" trục! – ChristineB
OP nếu bạn vẫn ở xung quanh có thể bạn muốn thay đổi câu trả lời được chấp nhận. –