Error bars centered at one bar in multi-bar plot
12 ビュー (過去 30 日間)
古いコメントを表示
Hi!
How to I get the error bars to show up at the correct bar and not centered as in the figure below? My y-matrix a 4x7.
Thanks!
name = {'Baseline';'Retro';'Tech';'Sub'};
x = [1:4]
figure
hb = bar(x,y);
set(gca,'xticklabel',name)
hold on
errorbar(x,y,errorminus,errorplus,'.k') % the y means (assumes columns are observations)
hold on
p = plot(x,t,'-o','color','k');
ylabel('Bton CO_2e');
hb(1).FaceColor = '#f46d43';
hb(2).FaceColor = '#fdae61';
hb(3).FaceColor = '#ffffbf';
hb(4).FaceColor = '#abdda4';
hb(5).FaceColor = '#66c2a5';
hb(6).FaceColor = '#3288bd';
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1390944/image.jpeg)
legend('FC', 'CK', 'ZZ', 'HK', 'VSBK', 'TK')
1 件のコメント
採用された回答
Star Strider
2023 年 5 月 23 日
It would help to have your data matrices. Use XEndPoints and YEndPoints to specify the ends of the bars.
y = rand(5,4);
errorplus = rand(5,4)/10;
errorminus = rand(5,4)/10;
name = {'Baseline';'Retro';'Tech';'Sub'};
x = [1:4];
t = rand(size(x));
figure
hb = bar(x,y);
set(gca,'xticklabel',name)
hold on
for k = 1:numel(hb)
XEP(k,:) = hb(k).XEndPoints;
YEP(k,:) = hb(k).YEndPoints;
errorbar(XEP(k,:),YEP(k,:),errorminus(k,:),errorplus(k,:),'.k') % the y means (assumes columns are observations)
end
hold on
p = plot(x,t,'-o','color','k');
ylabel('Bton CO_2e');
hb(1).FaceColor = '#f46d43';
hb(2).FaceColor = '#fdae61';
hb(3).FaceColor = '#ffffbf';
hb(4).FaceColor = '#abdda4';
hb(5).FaceColor = '#66c2a5';
hb(6).FaceColor = '#3288bd';
.
2 件のコメント
その他の回答 (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!