MATLABグラフの書き方入門

2次元グラフの簡単な描き方を2つの例で説明する。

例1:
% Demo program for plot() No.1

t=linspace(0.0, 20.0, 201);		% array of 101 from 0.0 to 10.0
t=[0: 0.1: 20.0];			% same as above
x=exp(-0.3*t).*cos(2*t);		% projection on x-axis
y=exp(-0.3*t).*sin(2*t);		% projection on y-axis
plot(x); pause;		                % plot of x     x軸は時間
plot(t,x,t,y); pause;	                % plot of x and y    x軸は時間
plot(t,x,'xr',t,y,'ob'); pause;         % x は「ばってん」記号, o は「まる」記号, r は赤色  b は青色
plot(t,x,t,y,'linewidth',3); pause;     % linewidth は線の太さで値は 0, 1, 2, ...

figure(2);                            % 2番目のグラフのウインドウを開く
plot(x,y); pause;                     % x と y の位相図
axis([-1, 1, -1, 1]); pause;          % 座標の範囲指定
axis square; pause;                   % 座標の形を正方形の形
grid on;                              % グリッドを入れる

figure(1);                                      % 図1に戻る
title('sin and cos graphs', 'fontsize', 18);    % 図にタイトル
xlabel('time in sec.','fontname','times');      % x軸にラベル :fontnameがtimes
ylabel('magnitude');
text(3.5, 0.45, 'cos graph','fontweight','bold');       % 図中にラベルをつける
text(4.5, 0.3, 'sin graph','fontweight','bold');        % fontweight はフォントの太さ  cf: normal
figure(2);                                              % 図2に戻る
title('a spiral made from sin and cos', 'fontsize', 16);
xlabel('x-axis','fontweight','bold'); 
ylabel('y-axis','fontweight','bold');
図1実行結果
図2実行結果
例2:
% 複数コマをプロットする例
% frequency response of 1/(s+1):1次遅れ
wlog=logspace(-2, 2, 201);      % 角周波数
f=1./(1+j*wlog);                % 周波数伝達関数
fabs=abs(f);                    % ゲイン
fphs=180*angle(f)/pi;           % 位相(度)

figure(1);			% 図1の作成
subplot 221;			% subplot(n,m,k) or subplot nmk はn行 m列の 図の k 番目の
	         		% グラフ作成
plot(wlog,fabs); 

subplot 222; 
semilogy(wlog,fabs);            % y が semilog
title('Magnitude: x linear, y logarithmic');

subplot 223; 
semilogx(wlog,fabs);            % x が semilog
title('Magnitude: x logarithmic, y linear');

subplot 224; 
loglog(wlog,fabs); 
title('Magnitude: x logarithmic, y logarithmic');
print -dbmp GP_plot2a.bmp      % bmp file output 
                               % print -deps GP_plot2a.eps とすれば epf ファイル出力
実行結果
figure(2);		       % 図2の作成
subplot 221; 
plot(wlog,fphs); 
axis tight; 			% axis tight は、データ単位が各方向で同じになるように縦横比を設定
title('Phase: x linear, y linear (deg.)'); 
ylabel('Angle in degrees');

subplot 222; 
semilogx(wlog,fphs); 
axis tight; 
title('Phase: x logarithmic, y linear (deg.)'); 
ylabel('Angle in degrees');

subplot 223; 
plotyy(log10(wlog),log(fabs),log10(wlog),fphs); 
axis tight; 
title('Magnitude and Phase Superimposed'); 
ylabel('Magnitude in dB');
text(2.8, -0.5,'Phase in degrees','Rotation',-90,'color','b');
print -dbmp GP_plot2b.bmp
実行結果