我有數據(PD系列),看起來像(每日股票收益,N = 555):無法在Matplotlib直方圖得到Y軸顯示的概率
S = perf_manual.returns
S = S[~((S-S.mean()).abs()>3*S.std())]
2014-03-31 20:00:00 0.000000
2014-04-01 20:00:00 0.000000
2014-04-03 20:00:00 -0.001950
2014-04-04 20:00:00 -0.000538
2014-04-07 20:00:00 0.000764
2014-04-08 20:00:00 0.000803
2014-04-09 20:00:00 0.001961
2014-04-10 20:00:00 0.040530
2014-04-11 20:00:00 -0.032319
2014-04-14 20:00:00 -0.008512
2014-04-15 20:00:00 -0.034109
...
我想生成從這個概率分佈圖。使用:
print stats.normaltest(S)
n, bins, patches = plt.hist(S, 100, normed=1, facecolor='blue', alpha=0.75)
print np.sum(n * np.diff(bins))
(mu, sigma) = stats.norm.fit(S)
print mu, sigma
y = mlab.normpdf(bins, mu, sigma)
plt.grid(True)
l = plt.plot(bins, y, 'r', linewidth=2)
plt.xlim(-0.05,0.05)
plt.show()
我得到如下:
NormaltestResult(statistic=66.587382579416982, pvalue=3.473230376732532e-15)
1.0
0.000495624926242 0.0118790391467
我的印象中,y軸是一個數,但我想有概率代替。我怎麼做?我已經嘗試了很多StackOverflow的答案,並不能解決這個問題。
你確定這些是計數?我想他們是概率密度值,因爲當你整合圖表時,你的圖形被歸一化爲1。你的x值範圍非常小。 – jotasi
可能的話,概率密度並不是我最強烈的觀點。我怎樣才能至少把這些分成百分比? –
你想要的百分比是多少?對於每個bin,數據在這個bin中的概率是多少?概率密度基本上意味着某個x範圍的密度積分給出了該範圍的概率。 – jotasi