Octaveコマンドまとめ2 -データプロット-


前回まで

前回はベクトル等に対する操作を中心にまとめました.

Octaveコマンドまとめ1 -基本操作(主にベクトル)-

今回はデータプロットについてまとめます.
前回と同じく, 内容はAndrew Ng 先生の『Octave/Matlab Tutorial』のまとめです.

実際この講義ではデータプロット部分はほとんど記述してくださっていたので, あんまり使わない可能性もありますが...

使用データ作成

今回の記事では, 以下のように作成したsin,cosのデータを使用していきます.

plotting_data.m
t = [1:0.01:2]; % x軸の数値作成
y1 = cos(2*pi*4*t); % cosデータ作成
y2 = sin(2*pi*4*t); % sinデータ作成

複数のグラフを重ねてプロット

以下のようなグラフを作成します.

plotting_data.m
plot(t,y1) % cosデータプロット
hold on % グラフをそのままに
plot(t,y2,'r') % sinデータを重ねてプロット

x軸の数値配列, y軸の数値配列をplotに渡すことで簡単にプロットできます.
通常複数のデータをplotで連続で処理しても,グラフは上書きされ一つのデータしか表示されません.
hold onにより,それ以降データを重ねてグラフに表示することが可能になります.
'r'のような引数を渡すことでグラフの色を指定することも可能です.

plotting_data.m
xlabel('times') % x軸ラベル
ylabel('value') % y軸ラベル
legend('cos','sin') % 凡例
title('title') % タイトル

軸ラベルや凡例,タイトルをグラフに追加します.

plotting_data.m
cd '保存先パス' % 保存先へ移動
print -dpng 'ファイル名.png' % 保存
close % クリア

最後に保存したい場合は, 保存したいフォルダへ移動してから ファイル名を指定して保存します.
closeによりグラフを消すことができます.

まとめると以下のようになります.

plotting_data.m

t = [1:0.01:2];
y1 = cos(2*pi*4*t);
y2 = sin(2*pi*4*t);

plot(t,y1) % cosデータプロット
hold on % これ以降グラフを重ねることが可能
plot(t,y2,'r')

xlabel('times') % x軸ラベル
ylabel('value') % y軸ラベル
legend('cos','sin') % 凡例
title('title') % タイトル

cd '保存先パス' % 保存先へ移動
print -dpng 'ファイル名.png' % ファイル名を指定して保存
close % グラフクリア

複数のウィンドウに複数のグラフをプロット

以下のようにグラフを作成します.

複数ウィンドウでグラフを並べます.
(真っ白なキャンバスを複数作って, それらにそれぞれグラフをプロットしていくような感じ)

figureで真っ白なウィンドウを作成し,plotで現在のウィンドウにグラフを作成します.
先述のxlabel,ylabellegend等 で現在のウィンドウにどんどん追加できます.

plotting_data.m

figure(1);
plot(t,y1);
figure(2);
plot(t,y2,'red');

cd '保存先パス' % 保存先へ移動
print -dpng 'ファイル名.png' % ファイル名を指定して保存
close % グラフクリア

一つのウィンドウに複数グラフをプロット

以下のようにグラフを作成します.

今回は縦に1つ, 横に2つに分けてグラフを描きます.
縦,横に1,2で分割しているので, 左側を(1,2,1), 右側を(1,2,2)として座標で指定できます.
よってsubplot(1,2,1)で ''横に2つに分割したやつの左側にグラフを描きます'' と指定してどんどん詳細を書き込んでいきます.
今回はグラフのプロットのみですが...

plotting_data.m
subplot(1,2,1);
plot(t,y1);
subplot(1,2,2);
plot(t,y2);

cd '保存先パス' % 保存先へ移動
print -dpng 'ファイル名.png' % ファイル名を指定して保存
close % グラフクリア

2次元配列を画像として表示

以下のようなデータを作成します.

グレースケールも.

ここでは今までとは別に, 2次元データを使用します.

前回の記事で記載していますが, magic(7) で縦, 横, 斜めの和が同値となる7×7行列が作成可能です.
imagesc で データをイメージとして表示します.
colorbarでカラーバーの追加, colormap grayでグレースケール画像への変更ができます.

plotting_data.m
A = magic(7)

imagesc(A)
colorbar
colormap gray
%imagesc(A),colorbar,colormap gray; でも同様

cd '保存先パス' % 保存先へ移動
print -dpng 'ファイル名.png' % ファイル名を指定して保存
close % グラフクリア

以上

次回はループ, if文, 関数についてまとめると思います.