一旦您意識到線段可能足以達到您的目的(並且可能不像通常的鬍鬚的誤差棒,取決於點數),您可以做一些非常簡單的事情(這可能適用於任何繪圖軟件包,而不僅僅是MATLAB)。
只需繪製一個散點圖,然後編寫一個循環來繪製所有想要對應於誤差線的線段(或者按照相反的順序來繪製它,就像我先用誤差線先散點圖一樣,這取決於您是否想要點或你的錯誤欄上)。
下面是一個簡單的MATLAB代碼,以示值誤差棒在二維的例子圖(抱歉近線性的無聊)一起:
正如你所看到的,你可以繪製錯誤每個軸以不同顏色顯示,以幫助可視化。
function scatterError(x, y, xe, ye, varargin)
%Brandon Barker 01/20/2014
nD = length(x);
%Make these defaults later:
dotColor = [1 0.3 0.3]; % conservative pink
yeColor = [0, 0.4, 0.8]; % bright navy blue
xeColor = [0.35, 0.35, 0.35]; % not-too-dark grey
dotSize = 23;
figure();
set(gcf, 'Position', get(0,'Screensize')); % Maximize figure.
set(gca, 'FontSize', 23);
hold all;
for i = 1:nD
plot([(x(i) - xe(i)) (x(i) + xe(i))], [y(i) y(i)], 'Color', xeColor);
plot([x(i) x(i)], [(y(i) - ye(i)) (y(i) + ye(i))], 'Color', yeColor);
end
scatter(x, y, dotSize, repmat(dotColor, nD, 1));
set(gca, varargin{:});
axis square;
隨着一些額外的工作,如果你真的想要它們,將錯誤添加到你的錯誤條中並不難。
對不起,不具體。我不是在談論執行速度,而是在編程方面。定義一個函數只是爲了得到一個錯誤框似乎對我來說有點多。 – 2013-09-25 14:18:33
@Konstantin我可以想象,你不想爲每個功能添加一個函數,但是如果它已經被某人寫了,它不需要太多的努力來複制它。 – 2013-09-25 14:24:54
問題是,我期待matlab有內置的東西。這會更容易,因此也是一個問題。 – 2013-09-25 19:49:54