plot3のベースプロット

動機

matlabのplot3は、軸ラベルが見難く、
加えて、軸が原点を通っていない

目的

原点を通るx,y,z軸をプロットし、
plot3のベースとする。
function [ Handle ] = HandlePlot3( varargin )
% ハンドルを返す
% 軸の範囲を単位ベクトル以外にしたければ、
% x,y,zの3要素を設定する
if nargin <= 2;    valZ = 1;
else valZ =  varargin{3};  end;

if nargin <= 1;    valY = 1;
else valY =  varargin{2};  end;

if nargin == 0;    valX = 1;
else valX =  varargin{1};  end;

AZ = -60;
EL = 15;

x1 = [ 0 , valX ]';
y1 = [ 0 , 0 ]';
z1 = [ 0 , 0 ]';

x2 = [ 0 , 0 ]';
y2 = [ 0 , valY ]';
z2 = [ 0 , 0 ]';

x3 = [ 0 , 0 ]';
y3 = [ 0 , 0 ]';
z3 = [ 0 , valZ ]';

xx = [ x1 ; x2 ; x3]; 
yy = [ y1 ; y2 ; y3];
zz = [ z1 ; z2 ; z3];

Handle = figure;
hold on;grid on;axis square;
plot3(xx,yy,zz, 'Marker','^' ,'LineWidth', 2 ,'Color' , 'k');

view( AZ , EL );
xlabel('x');
ylabel('y');
zlabel('z');

%軸の反転
set(gca,'XDir','rev','YDir','rev');
hold off;

end

実行結果