Add error bars in bar graph
10 ビュー (過去 30 日間)
古いコメントを表示
Hi! I am trying to add the error bars in my chart but I do not know how to do it...
>> y = [9862.5 5238 3845.2; 9368.6 3515 3625.7; 11064 6810 4073.6; 12599.2 5701 3955.3; 10114.4 5683 3664.5];
>> b = bar(y,'FaceColor', 'flat');
>> set (gca, 'XTickLabel',{ 'Pronghorn', 'Settler CL', 'Robidoux', 'LCS Chrome', 'Warhorse'})
>> for k = 1:size(y,2)
b(k).CData = k;
end;
this is the code for my chart.
And these are the std error:
1699.5 , 612.157 , 548.048
Thank you!
2 件のコメント
採用された回答
Adam Danz
2020 年 1 月 14 日
編集済み: Adam Danz
2021 年 12 月 10 日
Here's a demo you can follow to add error bars to a grouped bar chart.
To center the errorbar on each bar, you need to compute their center points along the x axis.
In Matlab R2019B or later the bar center points are stored in
h = bar(__);
h.XEndPoints % x centers
Required inputs are
- count: an n x m matrix that will produce n groups each containing m bars.
- err: an n x m matrix that defines the error for each bar
% Create bar data
count = [9862.5 5238 3845.2; 9368.6 3515 3625.7; 11064 6810 4073.6; 12599.2 5701 3955.3; 10114.4 5683 3664.5];
% Create error data (using random data for this demo)
err = (rand(size(count))+2)*100;
% Plot bars
figure;
h = bar(count);
% Get x centers; XOffset is undocumented
xCnt = (get(h(1),'XData') + cell2mat(get(h,'XOffset'))).';
% Add errorbars
hold on
errorbar(xCnt(:), count(:), err(:), err(:), 'k', 'LineStyle','none')
% or
% errorbar(xCnt(:), count(:), err(:), 'LineStyle','none')

Alternatively, if you're working with error intervals that define the upper and lower bounds of error,
Required inputs are
- count: an n x m matrix that will produce n groups each containing m bars.
- errUpperBound: an n x m matrix that defines the upper bound of error for each bar
- errLowerBound: an n x m matrix that defines the lower bound of error for each bar
% Create bar data
count = [9862.5 5238 3845.2; 9368.6 3515 3625.7; 11064 6810 4073.6; 12599.2 5701 3955.3; 10114.4 5683 3664.5];
% Create upper and lower error bounds
errUpperBound = count + 200;
errLowerBound = count - 100;
% Compute the error distance in the neg & pos directions
errNeg = count - errLowerBound;
errPos = errUpperBound - count;
% plot error bar
errorbar(xCnt(:), count(:), errNeg(:), errPos(:), 'k', 'LineStyle','none')
4 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Errorbars についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!