2017-02-27 105 views
2

我剛剛運行一個簡單的任務,試圖繪製我運行的模擬的概率密度直方圖。但是,當我繪製它時,每個箱的概率似乎與頻率圖的結果不匹配。有50個箱子,我預計每個箱子的平均概率爲2%,這並不反映在圖表中。概率密度直方圖與Matplotlib沒有意義

在此先感謝

import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt 

plntAcres = 88.0 
hvstPer = 0.99 
hvstAcres = plntAcres*hvstPer 
yldAcre = np.random.triangular(47,48,49, 10000) 

carryIn = 464 
pdn = hvstAcres * yldAcre 
imp = 25.0 
ttlSup = carryIn + pdn + imp 

crush = np.random.uniform(1945, 1990,10000) 
expts = np.random.uniform(2085, 2200,10000) 
seedRes = 130 
ttlDem = crush + expts + seedRes 

carryOut = ttlSup - ttlDem 

print carryOut 

plt.hist(carryOut, bins=50,normed=True) 
plt.title("Carry Out Distribution") 
plt.xlabel("Value") 
plt.ylabel("Probability") 
plt.show() 

Probability density of Carry out

回答

1

hist功能檢查維基百科,normed參數不會導致probabilites,但概率密度。如果您想要自己的概率,請使用weights參數(並提供1/len(carryOut))。

關鍵的兩行:

weights = np.ones_like(carryOut)/(len(carryOut)) 
plt.hist(carryOut, bins=50, weights=weights) 
+0

謝謝!,工作。欣賞它 – Moj

0

你的架構是一個鐘形曲線,通常意味着你的隨機變量服從正態分佈。 爲Normal Distribution/Gauss distribution

+0

而且是有原因的。他正在加上(減去)三個具有可比標準差的隨機變量。除非它們相互關聯(不在這種情況下),否則結果往往接近高斯(大數定律)。 –

+0

我的主要問題是,個人斌概率似乎沒有加起來1,我不知道爲什麼@honza_p – Moj

+0

現在我明白了這個問題。 –