首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在matlab中阻止errorbar重叠

在matlab中阻止errorbar重叠
EN

Stack Overflow用户
提问于 2016-09-21 22:11:35
回答 1查看 908关注 0票数 2

我需要展示具有标准差的多组数据-并且我一直在使用误差条。但是,当我在同一图上绘制多个集合时,一些错误条重叠。

有没有一种简单的方法可以使某个刻度值的误差条稍有偏移,这样它们显然属于那个刻度标记,但不重叠,因此它们的分布是清晰的?我已经看到了类似的问题,并用条形图进行了回答,但我很难将其扩展到errorbar。

谢谢!

具有重叠误差条的示例图像:1

用于生成图像的代码:

代码语言:javascript
运行
复制
val1 = [818.23,819.12,820.73,821.93,819.21];
val2 = [840.04,839.77,841.20,842.54,841.50];
val1std = [14.81,5.17,14.08,20.24,11.95];
val2std = [14.81,5.17,14.08,20.24,11.95];

figure
set(gca,'fontsize',18)
hold on
errorbar(val1,val1std,'ok','linewidth',2,'MarkerSize',6','MarkerFaceColor','k')
errorbar(val2,val2std,'xk','linewidth',2,'MarkerSize',6','MarkerFaceColor','k')
xlabel('Some property (unit)','fontsize',18,'interpreter','latex')
ylabel('Another property (unit)','fontsize',18,'interpreter','latex')
set(gca,'XTickLabel',{'','0.10','0.08','0.06','0.04','0.02',''}) 
set(get(gca, 'yLabel'), 'Rotation',90);
set(gca,'TickLabelInterpreter','latex')
xlim([0 6])
ylim([800 900])
set(gca, ...
    'box', 'on',...
    'tickdir', 'in',...
    'ticklength',[.02 .02],...
    'linewidth',1,...
    'ygrid','off')
set(gcf,'paperpositionmode','auto','Color',[1,1,1])
h=legend({'data1','data2'})
set(h,'Interpreter','latex')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-22 00:01:16

指定errorbarx输入,并手动添加一点偏移量。您可以按如下方式进行操作。修改后的行用注释表示。

代码语言:javascript
运行
复制
val1 = [818.23,819.12,820.73,821.93,819.21];
val2 = [840.04,839.77,841.20,842.54,841.50];
val1std = [14.81,5.17,14.08,20.24,11.95];
val2std = [14.81,5.17,14.08,20.24,11.95];

figure
set(gca,'fontsize',18)
hold on
delta = .07; % Adjust manually
errorbar((1:numel(val1))-delta, val1,val1std,'ok','linewidth',2,'MarkerSize',6',...
'MarkerFaceColor','k') % Add X input
errorbar((1:numel(val2))+delta,val2,val2std,'xk','linewidth',2,'MarkerSize',6',...
'MarkerFaceColor','k') % Add X input
xlabel('Some property (unit)','fontsize',18,'interpreter','latex')
ylabel('Another property (unit)','fontsize',18,'interpreter','latex')
set(gca,'XTickLabel',{'','0.10','0.08','0.06','0.04','0.02',''}) 
set(get(gca, 'yLabel'), 'Rotation',90);
set(gca,'TickLabelInterpreter','latex')
xlim([0 6])
ylim([800 900])
set(gca, ...
    'box', 'on',...
    'tickdir', 'in',...
    'ticklength',[.02 .02],...
    'linewidth',1,...
    'ygrid','off')
set(gcf,'paperpositionmode','auto','Color',[1,1,1])
h=legend({'data1','data2'})
set(h,'Interpreter','latex')

这给出了下图。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39619050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档