2016-09-21 15 views
2

我有多組數據和標準偏差我需要提出 - 我一直在使用錯誤條。但是,當我在同一圖上繪製多組圖形時,某些誤差線會重疊。停止在matlab中重疊的錯誤條

是否有一種簡單的方法可以使某個刻度值的誤差線略微偏移,這樣就可以清楚它們屬於該刻度標記,但不會重疊,因此它們的點差清晰?我看到一個類似的問題,用條形圖來回答和執行,但我很難將其擴展到錯誤欄。

謝謝!

實施例的圖像,具有重疊誤差條: 1

代碼用於產生圖像:

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

兩個問題:1)沿x軸的數據相當量化? (是否只有某些值可以採用,或者整個範圍內是否有數據。)2)您最多可以預期多少個重疊的塊? 2? 3? 20? –

+0

嗨伊恩:1)只有一定的價值。這是一個幾何屬性(x軸),並且對這兩個組的幾何屬性的5個值進行測試,每組有大量樣本。 2)因此,在目前和本刊物中,我們只有2個重疊的條。我們希望保持這種風格 - 也就是說,我們不希望透明顏色條重疊。如果我們可以稍微抵消一點,那將是理想的!謝謝! – Matt

回答

2

指定x輸入到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 
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') 

這給出了下圖。

enter image description here

+0

Luis!這正是我需要的。非常感謝! – Matt

+0

@Matt太棒了! :-) –