Error bars centered at one bar in multi-bar plot

7 次查看(过去 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';
legend('FC', 'CK', 'ZZ', 'HK', 'VSBK', 'TK')
  1 个评论
Matt J
Matt J 2023-5-23
编辑:Matt J 2023-5-23
You code does not run,
name = {'Baseline';'Retro';'Tech';'Sub'};
x = [1:4]
x = 1×4
1 2 3 4
figure
hb = bar(x,y);
Unrecognized function or variable 'y'.
set(gca,'xticklabel',name)
hold on
errorbar(x,y,errorminus,errorplus,'.k') % the y means (assumes columns are observations)

请先登录,再进行评论。

采纳的回答

Star Strider
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';
Unrecognized property 'FaceColor' for class 'matlab.graphics.GraphicsPlaceholder'.
.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Errorbars 的更多信息

产品


版本

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by