matlab:如何在条形图中绘制不同的错误栏

时间:2014-09-16 12:17:11

标签: matlab plot

我想在条形图中绘制不同的错误栏std_a/b/c

a=5;  std_a=0.9;  
b=6;  std_b=0.5;
c=7;  std_c=0.2;

%plot
bar([a,b,c]);
errorbar([a,b,c],[std_a,std_b,std_c]);

不知怎的,这不起作用。如何为每个条获得正确的错误栏?

2 个答案:

答案 0 :(得分:2)

你很亲密。默认情况下,errorbar会绘制一条线并向其添加错误栏,如果您尚未调用hold onhold all,则会覆盖您已有的内容。如果您只想要误差线而不是它们之间的线,请给它一个仅绘制点的绘图格式,例如r.

bar([a,b,c]);
hold on
errorbar([a,b,c],[std_a,std_b,std_c],'r.');

答案 1 :(得分:1)

我必须改善x轴上误差条的位置,因为对于多个数据系列,条形并排显示,而误差条可能会出现在另一个的顶部。

对于具有两列的数据和相同大小的serr(在我的情况下为标准错误),我使用向左和向右移动+ -1.4(参见下面代码中的间隙)。

gap=0.14;
X=1:length(data);
X=[X'-gap,X'+gap];
errorbar(X,data,serr,'k.');

如果要最小化底部条,以便只显示顶部错误条,则可以指定第三个输入参数,其中零的大小与serr相同。