2012-07-03 15 views
9

पर फ़ंक्शन लाइन के साथ एक हिस्टोग्राम प्लॉट करना मैं साजिश के लिए आंकड़ों और matplotlib के लिए साइपीपी का उपयोग करके पाइथन में वितरण प्लॉटिंग और फिटिंग में थोड़ा सा प्रयास करने की कोशिश कर रहा हूं। मैं एक हिस्टोग्राम बनाने जैसे कुछ चीजों के साथ अच्छी किस्मत हो रही है:पायथन: शीर्ष

seed(2) 
alpha=5 
loc=100 
beta=22 
data=ss.gamma.rvs(alpha,loc=loc,scale=beta,size=5000) 
myHist = hist(data, 100, normed=True) 

enter image description here

शानदार!

मैं भी एक ही गामा मापदंडों लेने के लिए और प्रायिकता वितरण समारोह की लाइन समारोह (कुछ Googling के बाद) प्लॉट कर सकते हैं:

rv = ss.gamma(5,100,22) 
x = np.linspace(0,600) 
h = plt.plot(x, rv.pdf(x)) 

enter image description here

मैं कैसे साथ हिस्टोग्राम myHist की साजिश रचने के बारे में जाना होगा पीडीएफ लाइन h हिस्टोग्राम के शीर्ष पर अतिसंवेदनशील? मुझे उम्मीद है कि यह मामूली है, लेकिन मैं इसे समझने में असमर्थ हूं।

+1

http://matplotlib.sourceforge.net/examples/api/histogram_demo.html – jfs

+0

आप ' शायद हिस्टोग्राम और साजिश को विभिन्न आंकड़ों में साजिश कर रहे हैं। यदि आप केवल उसी आंकड़े पर हिस्ट और प्लॉट फ़ंक्शन को कॉल करते हैं तो 2 को – Dhara

+0

@ धारा को अतिरंजित किया जाना चाहिए। मैं ipython नोटबुक का उपयोग कर रहा हूँ और वास्तव में ऐसा कर रहा हूँ। –

उत्तर

10

बस दोनों टुकड़ों को एक साथ रखें।

import scipy.stats as ss 
import numpy as np 
import matplotlib.pyplot as plt 
alpha, loc, beta=5, 100, 22 
data=ss.gamma.rvs(alpha,loc=loc,scale=beta,size=5000) 
myHist = plt.hist(data, 100, normed=True) 
rv = ss.gamma(alpha,loc,beta) 
x = np.linspace(0,600) 
h = plt.plot(x, rv.pdf(x), lw=2) 
plt.show() 

enter image description here

सुनिश्चित करें कि आप क्या आप किसी भी विशिष्ट साजिश उदाहरण में चाहते बनाने के लिए, एक figure वस्तु पहले बनाने का प्रयास करें

import scipy.stats as ss 
import numpy as np 
import matplotlib.pyplot as plt 
# setting up the axes 
fig = plt.figure(figsize=(8,8)) 
ax = fig.add_subplot(111) 
# now plot 
alpha, loc, beta=5, 100, 22 
data=ss.gamma.rvs(alpha,loc=loc,scale=beta,size=5000) 
myHist = ax.hist(data, 100, normed=True) 
rv = ss.gamma(alpha,loc,beta) 
x = np.linspace(0,600) 
h = ax.plot(x, rv.pdf(x), lw=2) 
# show 
plt.show() 
+3

जिस समस्या में मैं चल रहा था वह था कि मैं ipython नोटबुक का उपयोग कर रहा हूं इसलिए मैं दौड़ूंगा एक साजिश, यह अंतःक्रियात्मक साजिश करेगा तो मैं कुछ सामान और साजिश करूँगा, और यह एक नई साजिश में खत्म हो जाएगा। मुझे यह समझने में मदद करने के लिए धन्यवाद! –

2

पर का वितरण समारोह की साजिश रचने में रुचि हो सकती कोई हिस्टोग्राम। इस अजगर के साथ डेटा दृश्य पर एक Coursera पाठ्यक्रम से Seaborn केडीई समारोह

import numpy as np # for random data 
import pandas as pd # for convinience 
import matplotlib.pyplot as plt # for graphics 
import seaborn as sns # for nicer graphics 

v1 = pd.Series(np.random.normal(0,10,1000), name='v1') 
v2 = pd.Series(2*v1 + np.random.normal(60,15,1000), name='v2') 

# plot a kernel density estimation over a stacked barchart 
plt.figure() 
plt.hist([v1, v2], histtype='barstacked', normed=True); 
v3 = np.concatenate((v1,v2)) 
sns.kdeplot(v3); 
plt.show() 

enter image description here उपयोग किया जा सकता

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