code you posted看起來很容易適應繪製所有三個誤差條。試試這個(請注意,我適應它也讓你可以改變曲線的形狀和顏色等,你通常會使用varargin
,例如,你可以調用plot3d_errorbars(...., '.r')
:使用
function [h]=plot3d_errorbars(x, y, z, ex, ey, ez, varargin)
% create the standard 3d scatterplot
hold off;
h=plot3(x, y, z, varargin{:});
% looks better with large points
set(h, 'MarkerSize', 25);
hold on
% now draw the vertical errorbar for each point
for i=1:length(x)
xV = [x(i); x(i)];
yV = [y(i); y(i)];
zV = [z(i); z(i)];
xMin = x(i) + ex(i);
xMax = x(i) - ex(i);
yMin = y(i) + ey(i);
yMax = y(i) - ey(i);
zMin = z(i) + ez(i);
zMax = z(i) - ez(i);
xB = [xMin, xMax];
yB = [yMin, yMax];
zB = [zMin, zMax];
% draw error bars
h=plot3(xV, yV, zB, '-k');
set(h, 'LineWidth', 2);
h=plot3(xB, yV, zV, '-k');
set(h, 'LineWidth', 2);
h=plot3(xV, yB, zV, '-k');
set(h, 'LineWidth', 2);
end
例子:
x = [1, 2];
y = [1, 2];
z = [1, 2];
ex = [0.1, 0.1];
ey = [0.1, 0.5];
ez = [0.1, 0.3];
plot3d_errorbars(x, y, z, ex, ey, ez, 'or')
我建議你將FEX提交[HERRORBAR](http://www.mathworks.com/matlabcentral/fileexchange/3963-herrorbar)與'errorbar'內的代碼進行比較,看起來像'HERRORBAR'直接改編自'errorbar',如果你看看這些變化,你可能會學習如何適應它的第三維。 – Dan
要做到這一點。對於我最好的情況szenar io,你有任何想法如何使標記爲3d對象? –
如果仔細看看plot3d_errorbars,它會繪製一條從[x,y,z + e]到[x,y,z-e]的直線。你必須將其擴展到所有三個維度。 – Daniel