Matlab——多组柱状图误差棒绘制

多组柱状图绘制
合理调整矩阵形态直接使用bar命令可以得到
如 size(y)=5*2 则bar(y) 得到5组每组2条的柱状图

添加误差棒可使用errorbar命令

y=squeeze(America);  % 5*2
error=squeeze(error_America);  % 5*2

b=bar(y,'FaceColor','flat','BarWidth',1.2); % 绘制5组2条柱状图

% 获得组数、柱数、柱宽等信息
ngroups = size(y,1);
nbars = size(y,2);
groupwidth =min(0.8, nbars/(nbars+1.5));
hold on;

for i = 1:nbars;   %针对第一/第二柱子
   x = (1:ngroups) - groupwidth/2 + (2*i-1) * groupwidth / (2*nbars);   %找到每组第一/第二个柱子在各组绘制的位置
    for j = 1:ngroups;  %针对每一组
        errorbar(x(j),y(j,i),error(j,i),'color','k','linewidth',1);  %绘制双头error
        %   errorbar(x(j),y(j,i),0,error(j,i),'color','k','linewidth',1);  %绘单头error——朝上
        %   errorbar(x(j),y(j,i),error(j,i),0,'color','k','linewidth',1);  %绘单头error——朝下
        %   需要时可以采取if判别y的正负,分开绘制朝上或朝下的errorbar 
        hold on;
    end
end    


以上为正常标准差errorbar绘制,如考虑合理范围内的最大最小值同样可以采取errorbar命令
使用的是errorbar(x,y,neg,pos)这一命令,即在每个数据点处绘制一个垂直误差条,其中 neg 确定数据点下方的长度,pos 确定数据点上方的长度。
min_y=y-miny;
max_y=maxy-y;

for i = 1:nbars;   %针对第一/第二柱子
   x = (1:ngroups) - groupwidth/2 + (2*i-1) * groupwidth / (2*nbars);   %找到每组第一/第二个柱子在各组绘制的位置
    for j = 1:ngroups;  %针对每一组
        errorbar(x(j), y(j,i),min_y(j,i), max_y(j,i), 'color','k','linewidth',1);  %讲最大最小值画成errorbar形式
        hold on;
    end
end    

在这里插入图片描述

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值