How to transform the normalized values of a histogram (i.e. the bars heights) in percentages?
17 次查看(过去 30 天)
显示 更早的评论
How to transform the normalized values of this histogram (i.e. the bars heights) in percentages?
I should multiply the bars values by 100, but how to do it ? (maybe inside the "histogram" function)
a = [0 0 0 1 1 1 1 1 1 3 3 3 2 2 4 4 39 39 39 39 39 39 40 40 40 40 40 40 40 0 0 0 0 0 0 0 41 41 41];
histogram(a,'Normalization','probability')
This could be a workaround:
bar(histcounts(a)/(sum(histcounts(a)))*100)
BUT:
- the bars are shifted towards right (why??)
- I would like to still use the "histogram" function (if possible, obviously)
Any idea ?
3 个评论
采纳的回答
Star Strider
2023-2-8
Altering the histogram plot is likely not possible because the ‘Values’ vector is read-only.
The easiest approach is likely to re-plot the bar plot using the derived values —
a = [0 0 0 1 1 1 1 1 1 3 3 3 2 2 4 4 39 39 39 39 39 39 40 40 40 40 40 40 40 0 0 0 0 0 0 0 41 41 41];
figure
hh = histogram(a,'Normalization','probability');
xlabel('Centers')
ylabel('Probability')
Values = hh.Values*100;
Cntrs = hh.BinEdges(1:end-1) + diff(hh.BinEdges)/2;
figure
bar(Cntrs, Values)
xlabel('Centers')
ylabel('Percent')
.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Histograms 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!