3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

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

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 % グラフクリア

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

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

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

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文, 関数についてまとめると思います.

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?