編輯: 好的,所以我通過閱讀更老的問題來回答我自己的問題。我很抱歉問這個問題!使用代碼正常化一個直方圖,並在matlab中使用y軸百分比
Y = rand(10,1);
C = hist(Y);
C = C ./ sum(C);
bar(C)
與相應的數據,而不是隨機數據工作正常。只需要現在優化紙盒尺寸。
美好的一天, 現在我知道你一定在想這已經被問過一千次了。從某種意義上說,你可能是對的,但是我無法從我在這裏找到的帖子中找到我的具體問題的答案,所以我想我可能只是問。我會盡量清楚,但請告訴我,如果它不明顯,我想要做什麼
好吧,所以我有一個5000行的(行)向量,所有這些都只是整數。現在我想要做的是繪製這5000個元素的直方圖,但是這樣一來y軸就有機會進入那個特定的bin,而x軸仍然是正常的,因爲它給出了該特定倉的價值。
現在,對我來說有意義的是將所有事情規範化,但這似乎並不奏效,至少我是如何做到的。
我第一次嘗試是
sums = sum(A);
hist(sums/trapz(sums),50)
我省略了休息,因爲它進口了大量的數據從一個特定的文件,這其實並不重要。總和=總和(A)工作正常,我可以在我的matlab東西中看到矢量。 (我該怎麼稱呼它,控制檯?)。然而,用trapz除以區域只會改變我的x軸,而不是我的y軸。一切變得超級小,10^-3級上,而應該是10
現在環視順序上,有人建議使用
hist(sums,50)
ylabels = get(gca, 'YTickLabel');
ylabels = linspace(0,1,length(ylabels));
set(gca,'YTickLabel',ylabels);
這無疑使得Y-軸從0到1,它根本沒有標準化。我希望它能真正反映出進入某個垃圾桶的機會。兩者結合也行不通。如果答案非常明顯,我很抱歉,我只是沒有看到它。
編輯:雖然我意識到這是一個單獨的問題(已被問過一百萬次),但我剛用手選取的容器大小,直到它看起來不錯,因爲直方圖中沒有任何柱狀圖。我已經看到了幾種不同的腳本,它們應該優化垃圾箱的大小,但是他們都沒有在每種情況下都製作出「最佳」的直方圖,可悲的是:如果所有數字都是整數?
嗨,大塔你自己找到了答案。在這種情況下,最好的做法是將其添加爲實際答案(下面的框)。這樣,具有相同問題的其他人就可以找到一個整齊的問答式資源。 –
我不知道一直工作的方式來選擇垃圾箱大小。如果你的數據來自一小部分整數,我建議每個數字使用一個bin。對於連續數據,有一種直方圖的替代方法,稱爲內核密度估計('ksdensity'),並且存在用於選擇最佳「分檔寬度」(在該上下文中稱爲帶寬)的算法。 –
並且將自己的答案標記爲已接受,以便該問題不會顯示爲未答覆 –