2013-03-02 29 views
9

Tôi đang bối rối về hàm chức năng matplotlib.Thùng biểu đồ pyplot được giải thích như thế nào?

Các tài liệu giải thích:

Nếu một chuỗi các giá trị, các giá trị của mức thấp hơn giới hạn của thùng được sử dụng.

Nhưng khi tôi có hai giá trị theo thứ tự tức là [0,1], tôi chỉ nhận được 1 thùng. Và khi tôi có ba như vậy:

plt.hist(votes, bins=[0,1,2], normed=True) 

Tôi chỉ nhận được hai thùng. Tôi đoán là giá trị cuối cùng chỉ là giới hạn trên cho thùng cuối cùng.

Có cách nào để có "phần còn lại" của các giá trị trong thùng cuối cùng, không phải là giá trị rất lớn ở đó không? (Hay nói cách khác, mà không làm cho rằng bin lớn hơn nhiều so với những người khác)

Nó có vẻ như giá trị bin cuối cùng được bao gồm trong bin cuối cùng

votes = [0,0,1,2] 
plt.hist(votes, bins=[0,1]) 

này mang lại cho tôi một bin chiều cao 3. tức là 0,0,1. Trong khi:

votes = [0,0,1,2] 
plt.hist(votes, bins=[0,1,2]) 

Cung cấp cho tôi hai thùng có hai thùng. Tôi tìm thấy trực giác truy cập này, thêm một thùng mới thay đổi chiều rộng của những người khác.

votes = [0,0,1] 
plit.hist[votes, bins=2) 

yeilds hai thùng kích thước 2 và 1. Những dường như đã được chia trên 0,5 từ trục x đi từ 0 đến 1.

Làm thế nào các mảng thùng nên được hiểu? Phân chia dữ liệu như thế nào?

+1

Bạn đang sử dụng phiên bản 'mpl' nào? Có một sự thay đổi trong chức năng lịch sử của 'numpy' một lúc trước đã thay đổi ý nghĩa của' bins' một chút, điều quan trọng là phải chắc chắn rằng bạn đang xem tài liệu phù hợp với các phiên bản bạn đang sử dụng. – tacaswell

+0

Tôi đang sử dụng phiên bản 1.6.1. Cảm ơn bạn đã lưu ý. –

Trả lời

15
votes = [0, 0, 1, 2] 
plt.hist(votes, bins=[0,1]) 

cung cấp cho bạn một bin chiều cao 3, vì nó chia dữ liệu thành một thùng đơn với khoảng thời gian: [0, 1]. Nó đặt vào thùng đó các giá trị: 0, 0 và 1.

votes = [0, 0, 1, 2] 
plt.hist(votes, bins=[0, 1, 2]) 

điều này cung cấp cho bạn biểu đồ với các khoảng thời gian: [0, 1 [và [1, 2]; để bạn có 2 mục trong thùng thứ nhất (số 0 và 0) và 2 mục trong thùng thứ 2 (số 1 và 2).

Nếu bạn cố gắng vẽ:

plt.hist(votes, bins=[0, 1, 2, 3]) 

ý tưởng đằng sau sự chia tách dữ liệu vào thùng là như nhau: bạn sẽ nhận được ba khoảng: [0, 1 [; [1, 2 [; [2, 3], và bạn sẽ nhận thấy rằng giá trị 2 thay đổi bin của nó, đi vào thùng với khoảng [2, 3] (thay vì ở trong thùng [1, 2] như trong ví dụ trước).

Kết luận, nếu bạn có một mảng được sắp xếp trong đối số thùng như: [i_0, i_1, i_2, i_3, i_4, ..., I_n] rằng sẽ tạo ra các thùng:
[i_0, i_1 [
[i_1, I_2 [
[I_2, i_3 [
[i_3, i_4 [
...
[i_ (n 1), i_n]

với các ranh giới của từng mở hoặc đóng theo dấu ngoặc vuông.

+6

Một cách khác để làm cho điều này rõ ràng/hoạt động tốt hơn, là trừ '0,5' khỏi các cạnh thùng của bạn (nếu bạn mong đợi các giá trị trong' phiếu bầu 'là số nguyên) để bạn có thể thực hiện các bước chi tiết này về bộ mở/đóng. – tacaswell

+0

cũng +1 cho giải thích siêu rõ ràng về các chi tiết của vấn đề thiết lập mở/đóng. – tacaswell

+0

Giải thích rõ ràng. Cảm ơn bạn! –

Các vấn đề liên quan