一旦你意识到线段可能足以满足你的目的(并且根据点数可能比通常的带有须子的误差条更美观),你可以做一些相当简单的事情(适用于可能任何绘图包,而不仅仅是MATLAB)。
只需绘制一个散点图,然后编写一个循环以绘制所有你想要的对应于误差条的线段(或者按照相反的顺序进行,就像我首先绘制误差条,然后是散点图,具体取决于你是想要将点还是误差条放在顶部)。
这是简单的MATLAB代码,以及显示二维误差条的示例图(抱歉,由于近似线性而有些无聊):
如你所见,你可以为每个轴绘制不同颜色的误差条以帮助可视化。
function scatterError(x, y, xe, ye, varargin)
nD = length(x);
dotColor = [1 0.3 0.3];
yeColor = [0, 0.4, 0.8];
xeColor = [0.35, 0.35, 0.35];
dotSize = 23;
figure();
set(gcf, 'Position', get(0,'Screensize'));
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;
如果你真的想要在误差线上添加"whiskers",那么需要进行一些额外的工作,但并不是很难。