2011-06-01 47 views
3

這是我的問題。我有一些數據是爲了獲得「數字化的」pdf而得到的,這很好。 現在,我想通過不同的方式對箱組着色,從而找到指示不同置信區間的方法。 特別是,從包含最高計數的箱子開始,我想找到並着色(比如說紅色)所有最高的箱子,其面積總和小於0.6。然後,總是通過減少計數來選擇新的箱子,我想爲增加我的紅色區域的箱子上色爲橙色.8。 我正在考慮使用numpy來獲取垃圾箱和計數,將它們分成3個系列(紅色,橙色和原始顏色),並用pyplot的條形圖將它們繪製出來。 希望你能指出一個更快的方式,謝謝!Python/matplotlib在直方圖中顯示置信度

+0

你可以張貼一些代碼? – Blender 2011-06-01 16:10:00

+0

不,我只是在考慮這樣做,我仍在考慮可能更有效的方法。我想避免將我的值排序到3個不同的列表中:S – purpleshift 2011-06-02 10:22:30

回答

6

如果我正確理解你的問題,我認爲下面的代碼將做你的建議。這與您正在考慮的方法有點不同,我不確定它更有效。無論如何,它通常有助於看到別人會做什麼的方式。它假定一個已經生成的pdf(直方圖),其中由變量「bin」表示的bin代表變量「binwidth」表示的bin寬度。

gray = (.5,.5,.5) 
orange = (1.0, 0.647, 0.0) 
red = (1.0, 0.0, 0.0) 

clrs = [gray for xx in bins] 

idxs = pdf.argsort() 
idxs = idxs[::-1] 
oranges = idxs[(cumsum(pdf[idxs])*binwidth < 0.8).nonzero()] 
reds = idxs[(cumsum(pdf[idxs])*binwidth < 0.6).nonzero()] 

for idx in oranges: 
    clrs[idx] = orange 

for idx in reds: 
    clrs[idx] = red 

bar(left=bins,height=pdf,width=binwidth,color=clrs) 

Here is a view of the result that I get along with the associated PDF and CDF

+0

是的,這正是這個技巧,謝謝! – purpleshift 2011-06-03 08:38:49