2013-03-02 6 views
9

मैं matplotlib हिस्ट फ़ंक्शन के बारे में उलझन में हूं।पाइप्लॉट हिस्टोग्राम डिब्बे का अर्थ कैसे लिया जाता है?

प्रलेखन बताते हैं:

मूल्यों का एक दृश्य, डिब्बे की निचली सीमा के मूल्यों प्रयोग की जाने वाली है।

लेकिन जब मेरे पास क्रम में दो मान हैं I.e [0,1], मुझे केवल 1 बिन मिलता है। और जब मैं तीन इतना की तरह है:

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

मैं केवल दो डिब्बे मिलता है। मेरा अनुमान है कि अंतिम मूल्य अंतिम बिन के लिए सिर्फ ऊपरी सीमा है।

क्या अंतिम बिन में मूल्यों के "बाकी" को रखने का कोई तरीका है, लेकिन इसके अलावा एक बहुत बड़ा मूल्य है? (या दूसरे शब्दों में, कि बिन दूसरों की तुलना में बहुत बड़ा बनाने के बिना)

ऐसा लगता है कि पिछले बिन मूल्य पिछले बिन

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

यह मैं ऊंचाई 3 में से एक बिन देता में शामिल है लगता है। यानी 0,0,1। जबकि:

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

मुझे प्रत्येक में दो के साथ दो डिब्बे देता है। मुझे यह काउंटर अंतर्ज्ञानी लगता है, कि एक नया बिन जोड़ना दूसरों की चौड़ाई को बदलता है।

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

दो डिब्बे आकार 2 और 1. yeilds ये 0,5 पर विभाजित किया गया है के बाद से एक्स-अक्ष कैसे डिब्बे सरणी व्याख्या की जानी चाहिए 1.

0 से चला जाता है लगता है? डेटा कैसे विभाजित है?

+1

आप 'mpl' का किस संस्करण का उपयोग कर रहे हैं? कुछ समय पहले 'numpy' के हिस्ट फ़ंक्शन में कोई बदलाव आया था, जिसने' बिन्स 'का अर्थ बदल दिया था, यह सुनिश्चित करना महत्वपूर्ण है कि आप उन दस्तावेजों को देख रहे हैं जो आपके द्वारा उपयोग किए जा रहे संस्करणों से मेल खाते हैं। – tacaswell

+0

मैं संस्करण 1.6.1 का उपयोग कर रहा हूँ। नोट के लिए धन्यवाद। –

उत्तर

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

यह आप, ऊंचाई 3 में से एक बिन देता है क्योंकि यह अंतराल के साथ एक ही बिन में डेटा विभाजन [0, 1]। ऐसा नहीं है कि बिन मूल्यों में रखता है: 0, 0, और 1.

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

यह आप अंतराल के साथ डिब्बे के साथ एक हिस्टोग्राम देता है: [0, 1 [और [1, 2]; इसलिए आपके पास पहली बिन (0 और 0) में 2 आइटम हैं, और 2 बिन (1 और 2) में 2 आइटम हैं।

आप साजिश करने का प्रयास करें: आप तीन अंतराल मिल जाएगा:

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

डिब्बे में डेटा बंटवारे के पीछे विचार यह एक ही है [0, 1 [; [1, 2 [; [2, 3], और आप देखेंगे कि मान 2 अपने बिन को बदलता है, अंतराल के साथ बिन में जाता है [2, 3] (पिछले उदाहरण के रूप में बिन [1, 2] में रहने के बजाए)।

निष्कर्ष में, यदि आपके पास डिब्बे तर्क में आदेश दिया गया सरणी है: [i_0, i_1, i_2, i_3, i_4, ..., I_n] कि डिब्बे पैदा करेगा:
[i_0, i_1 [
[i_1, I_2 [
[I_2, i_3 [
[i_3, i_4 [
...
[I_ (n- 1), i_n]

ब्रैकेट के अनुसार प्रत्येक खुले या बंद की सीमाओं के साथ।

+6

यह स्पष्ट/व्यवहार बेहतर बनाने का एक और तरीका है, अपने बिन किनारों से '0.5' घटाएं (यदि आप 'वोटों' में मानों को पूर्णांक होने की अपेक्षा करते हैं) तो आप इन विवरणों को खुले/बंद सेट के बारे में बता सकते हैं। – tacaswell

+0

खुले/बंद सेट मुद्दे के विवरण के सुपर स्पष्ट स्पष्टीकरण के लिए भी +1 है। – tacaswell

+0

एक स्पष्ट स्पष्टीकरण। धन्यवाद! –

संबंधित मुद्दे