在matlab中防止错误条重叠

在matlab中防止错误条重叠,matlab,errorbar,Matlab,Errorbar,我需要展示多组标准偏差数据,我一直在使用误差条。但是,当我在同一个绘图上绘制多个集时,一些错误条会重叠 有没有一种简单的方法可以使某个刻度值的误差条略微偏移,这样就可以清楚地知道它们属于那个刻度标记,但不重叠,这样它们的排列就清晰了?我已经看到一个类似的问题得到了回答,并用条形图进行了演示,但我很难将其扩展到errorbar 谢谢 带有重叠错误条的示例图像: 用于生成图像的代码: val1 = [818.23,819.12,820.73,821.93,819.21]; val2 = [840.

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

有没有一种简单的方法可以使某个刻度值的误差条略微偏移,这样就可以清楚地知道它们属于那个刻度标记,但不重叠,这样它们的排列就清晰了?我已经看到一个类似的问题得到了回答,并用条形图进行了演示,但我很难将其扩展到errorbar

谢谢

带有重叠错误条的示例图像:

用于生成图像的代码:

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')

指定
x
输入,并手动添加一点偏移量。你可以这样做。修改的行用注释表示

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')
这给出了下图

两个问题:1)沿x轴的数据是不是很量化?(是否只有特定的值可以接受,或者整个范围内是否有数据。)2)您最多期望有多少个重叠条?2.3.20?嗨,伊恩:1)只有某些值。这是一种几何特性(xaxis),在这5个几何特性值下对2组进行测试,每组有大量样本。2) 因此,在目前和本出版物中,我们只有2个重叠条。我们希望保持这种风格,也就是说,我们不希望透明的颜色条重叠。如果我们可以有一个轻微的偏移,那将是理想的!谢谢